[ovs-dev] [IPv6 IV: A New Hope 5/6] nicira-ext: Support matching IPv6 traffic.

Justin Pettit jpettit at nicira.com
Wed Feb 2 19:12:36 UTC 2011


On Feb 2, 2011, at 10:36 AM, Ben Pfaff wrote:

> I believe that in parse_ipv6hdr(), the statement
> 	nh_len = payload_ofs - skb_network_offset(skb);
> can be simplified to:
> 	nh_len = payload_ofs - nh_ofs;
> because I don't see anything in between nh_ofs and nh_len that would
> change the network header offset.

Before using ipv6_skip_exthdr(), I did a bunch of SKB pulls that could change that offset as I processed extension headers.  That function doesn't do pulls, so it's not needed any more.  Thanks.

> Why does parse_ipv6hdr() return the network header length?  I don't see
> where the caller uses it.  I think that it could just return 0.

It's used in the following patch to figure out how long the ICMP payload is.  Rather than change the calling convention between patches, I just do it the way I'm going to need it here.

> In odp_key_ipv6, the uint32_t fields should be ovs_be32.

Whoop.  Thanks.

> In odp_flow_key_to_flow(), I don't really like the mixing of IP_TYPE_*
> (from packets.h) with IPPROTO_* (from some system header).  I'd rather
> add a IP_TYPE_ICMPV6 or use IPPROTO_* uniformly.  Ditto in
> parse_protocol() in ofp-parse.c.

I agree and was planning to clean that up in a follow-on patch.  Do you know why we define IP_TYPE_* in packets.h, if they're defined in "netinet/in.h"?  I'd prefer to use the pre-defined ones and get rid of "IP_TYPE_*" from packets.h unless there's a compelling reason not to.

> Acked-by: Ben Pfaff <blp at nicira.com>


Thank you very much for the reviews, Ben and Jesse!  Ben, I'll wait to hear back from you on the above point before pushing the changes.

--Justin






More information about the dev mailing list