> Hi,
> It seems that I encountered a strange problem about vlan_vid, I am using
> OF1.3 parser
> 
> The topology is this
> 
> Switch-1 ---- Switch-2
> 
> I use the following code to set up a flow to match dl_vlan=1 on switch 2
> ======
>         match = parser.OFPMatch(vlan_vid=1)

please try:

          match = parser.OFPMatch(vlan_vid=1|ofproto_v1_3.OFPVID_PRESENT)

YAMAMOTO Takashi

>         actions = [parser.OFPActionSetField(vlan_vid = 0x0002),
> parser.OFPActionOutput(2)]
>         inst =
> [parser.OFPInstructionActions(ofproto_v1_3.OFPIT_APPLY_ACTIONS, actions)]
>         req = parser.OFPFlowMod(datapath = switch.dp, match = match,
> instructions = inst)
>         switch.dp.send_msg(req)
> ======
> 
> The incoming packets have vlan=1, the code on switch-1 I use to push vlan
> is :
> 
> =====
> 
>         match = parser.OFPMatch( eth_dst=dst_mac, eth_src=src_mac,
> eth_type=0x0800, ipv4_src=src_ip, ipv4_dst=dst_ip)
>         actions = [parser.OFPActionPushVlan(0x8100),
> parser.OFPActionSetField(vlan_vid = 0x0001),
> parser.OFPActionSetField(eth_dst = mac),
> parser.OFPActionOutput(output_port)]
>         inst =
> [parser.OFPInstructionActions(ofproto_v1_3.OFPIT_APPLY_ACTIONS, actions)]
>         req = parser.OFPFlowMod(datapath = switch.dp, match = match,
> instructions = inst)
>         switch.dp.send_msg(req)
> =====
> 
> I think the set vlan code is correct, because when I use ovs-ofctl to
> mannually set another rule to match for dl_vlan=1 and packet will go
> through but when I use Ryu API, it cannot.
> 
> My only guess for now(by observing the resulting rules) is that
> vlan_tci(set by Ryu API) is somewhat different from dl_vlan(manually set)?
> 
> But other than that, I have really no clue...
> 
> Thanks
> -Mo

------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to