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)
        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