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

Reply via email to