<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:31:47 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[OPNFLWPLUG-188] of-flow: instruction (push-vlan-action) different in config and operational db</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-188</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;odl:&lt;br/&gt;
version.properties &lt;br/&gt;
org.opendaylight.controller.version = 0.1&lt;br/&gt;
org.opendaylight.controller.build.scm.version = 2fffd8cdb3ed75f478b900c677bb4d97e5e91c9c&lt;br/&gt;
org.opendaylight.controller.build.user = jenkins-controller&lt;br/&gt;
org.opendaylight.controller.build.workspace = **********&lt;br/&gt;
org.opendaylight.controller.build.timestamp = 1402444582255&lt;br/&gt;
org.opendaylight.controller.build.machine = **********&lt;/p&gt;

&lt;p&gt;test: mininet 2.1.0 + ovs 2.0.0&lt;/p&gt;

&lt;p&gt;steps:&lt;br/&gt;
1) PUT xml /restconf/config/opendaylight-inventory:nodes/node/openflow:${switch_idx}/table/${table_id}/flow/${flow_id}&lt;br/&gt;
(xml file f110.xml in attachment)&lt;/p&gt;

&lt;p&gt;2) GET its operational state (for full details see f110odb.xml in attachment)&lt;br/&gt;
3) GET its config&lt;/p&gt;

&lt;p&gt;4) seen difference&lt;br/&gt;
config:&lt;br/&gt;
        &amp;lt;instruction&amp;gt;&lt;br/&gt;
            &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br/&gt;
            &amp;lt;apply-actions&amp;gt;&lt;br/&gt;
                &amp;lt;action&amp;gt;&lt;br/&gt;
                    &amp;lt;push-vlan-action&amp;gt;&lt;br/&gt;
                        &amp;lt;ethernet-type&amp;gt;33024&amp;lt;/ethernet-type&amp;gt;&lt;br/&gt;
                        &amp;lt;vlan-id&amp;gt;1234&amp;lt;/vlan-id&amp;gt;&lt;br/&gt;
                    &amp;lt;/push-vlan-action&amp;gt;&lt;br/&gt;
                    &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br/&gt;
                &amp;lt;/action&amp;gt;&lt;br/&gt;
            &amp;lt;/apply-actions&amp;gt;&lt;br/&gt;
        &amp;lt;/instruction&amp;gt;&lt;/p&gt;


&lt;p&gt;operational:&lt;br/&gt;
        &amp;lt;instruction&amp;gt;&lt;br/&gt;
            &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br/&gt;
            &amp;lt;apply-actions&amp;gt;&lt;br/&gt;
                        &amp;lt;action&amp;gt;&lt;br/&gt;
                            &amp;lt;push-vlan-action&amp;gt;&lt;br/&gt;
                                &amp;lt;ethernet-type&amp;gt;33024&amp;lt;/ethernet-type&amp;gt;&lt;br/&gt;
                            &amp;lt;/push-vlan-action&amp;gt;&lt;br/&gt;
                            &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br/&gt;
                        &amp;lt;/action&amp;gt;&lt;br/&gt;
                    &amp;lt;/apply-actions&amp;gt;&lt;br/&gt;
                &amp;lt;/instruction&amp;gt;&lt;/p&gt;

&lt;p&gt;the tag &amp;lt;vlan-id&amp;gt;1234&amp;lt;/vlan-id&amp;gt; is missing in operational data store&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Linux&lt;br/&gt;
Platform: PC&lt;/p&gt;</environment>
        <key id="27456">OPNFLWPLUG-188</key>
            <summary>of-flow: instruction (push-vlan-action) different in config and operational db</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Cannot Reproduce</resolution>
                                        <assignee username="Avishnoi">Anil Vishnoi</assignee>
                                    <reporter username="pgubka@cisco.com">Peter Gubka</reporter>
                        <labels>
                    </labels>
                <created>Wed, 11 Jun 2014 11:38:22 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:13 +0000</updated>
                            <resolved>Fri, 13 Jun 2014 15:16:15 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="55771" author="pgubka@cisco.com" created="Wed, 11 Jun 2014 11:38:22 +0000"  >&lt;p&gt;Attachment f110.xml has been added with description: flow to be configured&lt;/p&gt;</comment>
                            <comment id="55772" author="pgubka@cisco.com" created="Wed, 11 Jun 2014 11:39:58 +0000"  >&lt;p&gt;Attachment f110odb.xml has been added with description: operational details of the flow&lt;/p&gt;</comment>
                            <comment id="55770" author="vishnoianil@gmail.com" created="Fri, 13 Jun 2014 15:12:45 +0000"  >&lt;p&gt;Hi Peter,&lt;/p&gt;

&lt;p&gt;I am able to recreate this issue locally. After installing the flow through RESTCONF, when i dump the flow on switch i see following flow &lt;/p&gt;

&lt;p&gt;mininet&amp;gt; sh ovs-ofctl dump-flows s1 --protocol=OpenFlow13&lt;br/&gt;
OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;br/&gt;
 cookie=0xc9, duration=158.164s, table=2, n_packets=0, n_bytes=0, idle_timeout=3400, hard_timeout=1200, send_flow_rem priority=110,tcp6,ipv6_src=1234:5678:9abc:def0:fdc0::/76,ipv6_dst=fe80:2acf:e9ff:fe21::/94,nw_ecn=3,tp_src=183,tp_dst=8080 actions=push_vlan:0x8100&lt;/p&gt;

&lt;p&gt;So if you see &lt;span class=&quot;error&quot;&gt;&amp;#91;actions=push_vlan:0x8100&amp;#93;&lt;/span&gt; push_vlan only has ethertype &lt;span class=&quot;error&quot;&gt;&amp;#91;0x8100 = 33024&amp;#93;&lt;/span&gt;, and that&apos;s the reason operational datastore shows only ethertype. This information is directly fetch from switch and hence reflect the final flow installed on the switch. I debug to figure out what controller is getting from switch and this is what it receives from switch &lt;/p&gt;

&lt;p&gt;Action [_type=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan, augmentation=[EthertypeAction [_ethertype=EtherType &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=33024&amp;#93;&lt;/span&gt;]]]&lt;/p&gt;

&lt;p&gt;and it doesn&apos;t have vlan-id value.&lt;/p&gt;

&lt;p&gt;I believe this behavior is correct because if you refer openflow spec 1.3.2+ (section 7.2.4 &amp;amp; 5.12) following is the structure for the push vlan tag&lt;/p&gt;

&lt;p&gt;/* Action structure for OFPAT_PUSH_VLAN/MPLS/PBB. */&lt;br/&gt;
struct ofp_action_push {&lt;br/&gt;
uint16_t type;&lt;br/&gt;
/* OFPAT_PUSH_VLAN/MPLS/PBB. */&lt;br/&gt;
uint16_t len;&lt;br/&gt;
/* Length is 8. */&lt;br/&gt;
uint16_t ethertype;&lt;br/&gt;
/* Ethertype */&lt;br/&gt;
uint8_t pad&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;;&lt;br/&gt;
};&lt;br/&gt;
OFP_ASSERT(sizeof(struct ofp_action_push) == 8);&lt;/p&gt;

&lt;p&gt;So push vlan action doesn&apos;t take vlan-id as a input, it just take ethertype. This action will add vlan header with given ethertype to the packet and rest all fields of the header will be unset. If you want to set vlan-id field of this header you will have to use Set-Field action after push-vlan action to do that.&lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Anil&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13880" name="f110.xml" size="1406" author="pgubka@cisco.com" created="Wed, 11 Jun 2014 11:38:22 +0000"/>
                            <attachment id="13881" name="f110odb.xml" size="2138" author="pgubka@cisco.com" created="Wed, 11 Jun 2014 11:39:58 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1183</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=1183]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02zlz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>