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
[email protected]
http://openvswitch.org/mailman/listinfo/dev