Sofware-Defined Networking

Reply
Highlighted
Occasional Contributor
Posts: 12
Registered: ‎11-11-2013
Accepted Solution

removing vlan tag

Anyone know the proper way to remove a vlan tag from a frame using openflow? Here's an example flow (installed on an MLXe):

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urnSmiley Surprisedpendaylight:flow:inventory">
    <id>1</id>
    <priority>50</priority>
    <instructions>
        <instruction>
            <order>0</order>
            <apply-actions>
                <action>
                    <order>0</order>
                    <pop-vlan-action/>
                </action>
                <action>
                    <order>3</order>
                    <set-field>
                        <vlan-match>
                            <vlan-id>
                                <vlan-id>2011</vlan-id>
                                <vlan-id-present>true</vlan-id-present>
                            </vlan-id>
                        </vlan-match>
                    </set-field>
                </action>
                <action>
                    <order>2</order>
                    <push-vlan-action>
                        <ethernet-type>33024</ethernet-type>
                    </push-vlan-action>
                </action>
                <action>
                    <order>1</order>
                    <set-field>
                        <ethernet-match>
                            <ethernet-destination>
                                <address>00:24:38:9c:3d:00</address>
                            </ethernet-destination>
                        </ethernet-match>
                    </set-field>
                </action>
                <action>
                    <order>4</order>
                    <output-action>
                        <output-node-connector>1</output-node-connector>
                    </output-action>
                </action>
            </apply-actions>
        </instruction>
    </instructions>
    <cookie>0</cookie>
    <idle-timeout>0</idle-timeout>
    <flags></flags>
    <hard-timeout>0</hard-timeout>
    <match>
        <in-port>openflow:10195343270477824:3</in-port>
        <ethernet-match>
            <ethernet-type>
                <type>2048</type>
            </ethernet-type>
        </ethernet-match>
        <ipv4-source>10.64.10.11/32</ipv4-source>
        <ipv4-destination>10.64.10.12/32</ipv4-destination>
    </match>
    <table_id>0</table_id>
</flow>

 

With the pop action, the flow doesn't get installed, without the pop action, the flow gets installed, but the traffic is double tagged...

 

This doc get's me close, but it doesn't show the flow itself, so I can't really use it:

 

http://www.brocade.com/content/html/en/configuration-guide/NI_05800a_SDN/GUID-33210980-B26D-4E5E-8D1B-00DA515A0813.html

 

Any help would be appreciated!

 

 

Occasional Contributor
Posts: 12
Registered: ‎11-11-2013

Re: removing vlan tag

Just wanted to follow up incase others ran into this issue... I ended up getting someone from the OpenDaylight initiative who provided the answer...

 

Long and short of it was that instead of doing a pop and then a push like I was doing, I just needed to overwrite the vlan tag by omitting the pop & push action's and as such:

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urnSmiley Surprisedpendaylight:flow:inventory">
    <id>1</id>
    <priority>50</priority>
    <instructions>
        <instruction>
            <order>0</order>
            <apply-actions>
                <action>
                    <order>2</order>
                    <set-field>
                        <vlan-match>
                            <vlan-id>
                                <vlan-id>2012</vlan-id>
                                <vlan-id-present>true</vlan-id-present>
                            </vlan-id>
                        </vlan-match>
                    </set-field>
                </action>
                <action>
                    <order>1</order>
                    <set-field>
                        <ethernet-match>
                            <ethernet-source>
                                <address>02:ee:0a:40:0a:0c</address>
                            </ethernet-source>
                        </ethernet-match>
                    </set-field>
                </action>
                <action>
                    <order>0</order>
                    <set-field>
                        <ethernet-match>
                            <ethernet-destination>
                                <address>45:b5:0a:5c:00:0f</address>
                            </ethernet-destination>
                        </ethernet-match>
                    </set-field>
                </action>
                <action>
                    <order>3</order>
                    <output-action>
                        <output-node-connector>2</output-node-connector>
                    </output-action>
                </action>
            </apply-actions>
        </instruction>
    </instructions>
    <cookie>0</cookie>
    <idle-timeout>0</idle-timeout>
    <flags></flags>
    <hard-timeout>0</hard-timeout>
    <match>
        <vlan-match>
            <vlan-id>
                <vlan-id>2011</vlan-id>
                <vlan-id-present>true</vlan-id-present>
            </vlan-id>
            <vlan-pcp>0</vlan-pcp>
        </vlan-match>
        <in-port>openflow:10195342851047424:2</in-port>
        <ethernet-match>
            <ethernet-type>
                <type>2048</type>
            </ethernet-type>
        </ethernet-match>
        <ipv4-source>10.64.10.12/32</ipv4-source>
        <ipv4-destination>10.64.10.11/32</ipv4-destination>
    </match>
    <table_id>0</table_id>
</flow>

Join the Community

Get quick and easy access to valuable resource designed to help you manage your Brocade Network.