[ovs-dev] Q on sending packets from the system running ovs

Ravi.Kerur at telekom.com Ravi.Kerur at telekom.com
Tue Feb 14 11:01:58 PST 2012


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



More information about the dev mailing list