I think that miniflow_extract() goes a little overboard on the OVS_LIKELYs. In particular these seem suspicious:
if (OVS_LIKELY((nw_proto != IPPROTO_HOPOPTS) if (OVS_LIKELY(nw_proto == IPPROTO_TCP)) { } else if (OVS_LIKELY(nw_proto == IPPROTO_UDP)) { } else if (OVS_LIKELY(nw_proto == IPPROTO_SCTP)) { } else if (OVS_LIKELY(nw_proto == IPPROTO_ICMP)) { } else if (OVS_LIKELY(nw_proto == IPPROTO_ICMPV6)) { I would put all of these into a single outermost OVS_LIKELY, to make it easier to read: if (OVS_LIKELY(arp) && OVS_LIKELY(arp->ar_hrd == htons(1)) && OVS_LIKELY(arp->ar_pro == htons(ETH_TYPE_IP)) && OVS_LIKELY(arp->ar_hln == ETH_ADDR_LEN) && OVS_LIKELY(arp->ar_pln == 4)) { What do you think? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev