summaryrefslogtreecommitdiffstats
path: root/extras/libmemif/examples/icmp_responder/icmp_proto.h
diff options
context:
space:
mode:
authorJakub Grajciar <jgrajcia@cisco.com>2018-03-29 13:15:10 +0200
committerDamjan Marion <dmarion.lists@gmail.com>2018-03-30 20:48:36 +0000
commit3744fc7abce0cf8694d64b670589e35c6d7bf881 (patch)
tree04f5f42458a1ab4f3f4109f890e998221b22e622 /extras/libmemif/examples/icmp_responder/icmp_proto.h
parent17ddc0fee1bc20d0da84dd70bb579c8844a48ef4 (diff)
libmemif: zero-copy-slave mode + header space
Slave is now able to dequeue buffers from rx queue and enqueue them to tx queue (zero-copy operation). Slave can produce buffers with headroom, which will allow adding encap without copy. Change-Id: Ia189f8de1a68be787545ed46cf78d36403e7e9bf Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Diffstat (limited to 'extras/libmemif/examples/icmp_responder/icmp_proto.h')
-rw-r--r--extras/libmemif/examples/icmp_responder/icmp_proto.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/extras/libmemif/examples/icmp_responder/icmp_proto.h b/extras/libmemif/examples/icmp_responder/icmp_proto.h
index ca72b2fe026..1575719bd6a 100644
--- a/extras/libmemif/examples/icmp_responder/icmp_proto.h
+++ b/extras/libmemif/examples/icmp_responder/icmp_proto.h
@@ -18,12 +18,28 @@
#ifndef _ICMP_PROTO_H_
#define _ICMP_PROTO_H_
+typedef enum
+{
+ ICMPR_FLOW_MODE_ETH = 0,
+ ICMPR_FLOW_MODE_IP,
+} icmpr_flow_mode_t;
+
int resolve_packet (void *in_pck, ssize_t in_size, void *out_pck,
uint32_t * out_size, uint8_t ip_addr[4]);
+/* resolve packet in place */
+int resolve_packet2 (void *pck, uint32_t * size, uint8_t ip_addr[4]);
+
+/* resolve packet in place and add eth encap */
+int resolve_packet3 (void **pck, uint32_t * size, uint8_t ip_addr[4]);
+
int generate_packet (void *pck, uint32_t * size, uint8_t saddr[4],
uint8_t daddr[4], uint8_t hw_daddr[6], uint32_t seq);
+int generate_packet2 (void *pck, uint32_t * size, uint8_t saddr[4],
+ uint8_t daddr[4], uint8_t hw_daddr[6], uint32_t seq,
+ icmpr_flow_mode_t);
+
int print_packet (void *pck);
#endif /* _ICMP_PROTO_H_ */