40 #define IP_FRAG_FLAG_IP4_HEADER 0x01 //Encapsulating IPv4 header 41 #define IP_FRAG_FLAG_IP6_HEADER 0x02 //Encapsulating IPv6 header 43 #define IP4_FRAG_NODE_NAME "ip4-frag" 44 #define IP6_FRAG_NODE_NAME "ip6-frag" 60 #define foreach_ip_frag_error \ 62 _(NONE, "packet fragmented") \ 63 _(SMALL_PACKET, "packet smaller than MTU") \ 64 _(FRAGMENT_SENT, "number of sent fragments") \ 65 _(CANT_FRAGMENT_HEADER, "can't fragment header") \ 66 _(DONT_FRAGMENT_SET, "can't fragment this packet") \ 67 _(MALFORMED, "malformed packet") \ 68 _(MEMORY, "could not allocate buffer") \ 69 _(UNKNOWN, "unknown error") 73 #define _(sym,str) IP_FRAG_ERROR_##sym, 85 u16 encapsize,
u32 ** buffer);
89 u16 encapsize,
u32 ** buffer);
void ip_frag_set_vnet_buffer(vlib_buffer_t *b, u16 mtu, u8 next_index, u8 flags)
vlib_node_registration_t ip4_frag_node
(constructor) VLIB_REGISTER_NODE (ip4_frag_node)
#define foreach_ip_frag_error
vlib_node_registration_t ip6_frag_node
(constructor) VLIB_REGISTER_NODE (ip6_frag_node)
ip_frag_error_t ip4_frag_do_fragment(vlib_main_t *vm, u32 from_bi, u16 mtu, u16 encapsize, u32 **buffer)
struct _vlib_node_registration vlib_node_registration_t
VLIB buffer representation.
ip_frag_error_t ip6_frag_do_fragment(vlib_main_t *vm, u32 from_bi, u16 mtu, u16 encapsize, u32 **buffer)