Thu, Feb 02, 2017 at 11:37:34AM CET, simon.hor...@netronome.com wrote: >Allow dissection of Neighbour Discovery target IP, and source and >destination link-layer addresses for neighbour solicitation and >advertisement messages. > >Signed-off-by: Simon Horman <simon.hor...@netronome.com> >---
[...] >@@ -633,6 +702,18 @@ bool __skb_flow_dissect(const struct sk_buff *skb, > FLOW_DISSECTOR_KEY_ICMP, > target_container); > key_icmp->icmp = skb_flow_get_be16(skb, nhoff, data, hlen); >+ >+ if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ND) && >+ ip_proto == IPPROTO_IPV6 && key_icmp->code == 0 && IPPROTO_IPV6 say "IPv6-in-IPv4 tunnelling". Please use "NEXTHDR_IPV6" instead. >+ (key_icmp->type == NDISC_NEIGHBOUR_SOLICITATION || >+ key_icmp->type == NDISC_NEIGHBOUR_ADVERTISEMENT)) { >+ key_nd = skb_flow_dissector_target(flow_dissector, >+ >FLOW_DISSECTOR_KEY_ND, >+ target_container); >+ if (!(skb_flow_dissect_nd(skb, key_nd, data, nhoff, >+ hlen, ipv6_payload_len))) >+ goto out_bad; >+ } You should put this under "switch (ip_proto) {"