X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=lib%2Flibrte_net%2Frte_net.h;fp=lib%2Flibrte_net%2Frte_net.h;h=b6ab6e1d57b2e43dfaa64bad84fed521fb09dbb4;hb=15dedf321036ae67c61f35a3ab55de767b07801f;hp=0e97901f36452929eacf50ec4afe35cf73edbc92;hpb=9f3a8cb4cfe59ea63e267f69700fb0fde13d7dd3;p=deb_dpdk.git diff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h index 0e97901f..b6ab6e1d 100644 --- a/lib/librte_net/rte_net.h +++ b/lib/librte_net/rte_net.h @@ -28,6 +28,33 @@ struct rte_net_hdr_lens { uint8_t inner_l4_len; }; +/** + * Skip IPv6 header extensions. + * + * This function skips all IPv6 extensions, returning size of + * complete header including options and final protocol value. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param proto + * Protocol field of IPv6 header. + * @param m + * The packet mbuf to be parsed. + * @param off + * On input, must contain the offset to the first byte following + * IPv6 header, on output, contains offset to the first byte + * of next layer (after any IPv6 extension header) + * @param frag + * Contains 1 in output if packet is an IPv6 fragment. + * @return + * Protocol that follows IPv6 header. + * -1 if an error occurs during mbuf parsing. + */ +int __rte_experimental +rte_net_skip_ip6_ext(uint16_t proto, const struct rte_mbuf *m, uint32_t *off, + int *frag); + /** * Parse an Ethernet packet to get its packet type. *