Thanks Jesse, My bad I have messed up something. The tests I was doing so far was with the code base I have used which includes mpls related changes. I downloaded latest ovs code from git and tried vlan matching tests and ovs-ofctl shows vlan specific flow was matched(num_packets incremented). I didn't move further with ovs-dpctl output and tcpdumps, since there is a difference w.r.t my code base and latest. I started looking into changes I have done for mpls which might have messed up vlan matching.
I started comparing the code base(my code base and latest), so far the changes I suspect is in ofp_match structure. I am not sure whether the fields I have added for mpls has anything to do with the vlan match problem. I have looked into specific 'c' code lib/classifier.c and lib/ofp-util.c related to dl_vlan and dl_vlan_pcp, I don't see any difference. Any additional debugs you recommend to enable which will help in this? So far I have enabled ovs-appctl vlog/set ofp_util:syslog:DBG ovs-appctl vlog/set vconn:ANY:DBG ovs-appctl vlog/set dpif:syslog:DBG ovs-appctl vlog/set odp_util:syslog:DBG ovs-appctl vlog/set ofproto_dpif:syslog:DBG ovs-appctl vlog/set ofproto:syslog:DBG and didn't get much information. /* Fields to match against flows */ struct ofp_match { ovs_be32 wildcards; /* Wildcard fields. */ ovs_be16 in_port; /* Input switch port. */ uint8_t dl_src[OFP_ETH_ALEN]; /* Ethernet source address. */ uint8_t dl_dst[OFP_ETH_ALEN]; /* Ethernet destination address. */ ovs_be16 dl_vlan; /* Input VLAN. */ uint8_t dl_vlan_pcp; /* Input VLAN priority. */ uint8_t pad1[1]; /* Align to 64-bits. */ ovs_be16 dl_type; /* Ethernet frame type. */ uint8_t nw_tos; /* IP ToS (DSCP field, 6 bits). */ uint8_t nw_proto; /* IP protocol or lower 8 bits of ARP opcode. */ uint8_t pad2[2]; /* Align to 64-bits. */ ovs_be32 nw_src; /* IP source address. */ ovs_be32 nw_dst; /* IP destination address. */ ovs_be16 tp_src; /* TCP/UDP source port. */ ovs_be16 tp_dst; /* TCP/UDP destination port. */ /****MPLS related changes************/ ovs_be32 mpls_label; /* MPLS Label */ uint8_t mpls_tc; /* MPLS TC */ uint8_t pad3[3]; /* Align to 64 bits */ }; OFP_ASSERT(sizeof(struct ofp_match) == 48); Thanks Ravi _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev