<!-- 
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-183] The new OF plugin doesn&apos;t set &quot;Strip VLAN header&quot; action into OF 1.0 switches</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-183</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;I run the Virtualization edition with vtn option with the new OF plugin, and I had VTN Manager install flow entries which had a &quot;Strip VLAN header&quot; action for OpenFlow 1.0 switches.&lt;br/&gt;
However, the controller didn&apos;t set &quot;Strip VLAN header&quot; action into a flow entry.&lt;/p&gt;


&lt;p&gt;When I run the Virtualization edition with the old OF plugin and execute the same scenario, the controller sets &quot;Strip VLAN header&quot; action into a flow entry.&lt;br/&gt;
Therefore, there is a bug in the new OF plugin or MD-SAL compatibility bundles.&lt;/p&gt;


&lt;p&gt;I think the new OF plugin doesn&apos;t correctly handle PopVlanActionCase class (in org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action) when creating flow entries for OpenFlow 1.0.&lt;/p&gt;


&lt;p&gt;When VTN Manager tried to install a flow entry which had a &quot;Strip VLAN header&quot; action, MDFlowMapping class (in org.opendaylight.controller.sal.compatibility) converted PopVlan (of org.opendaylight.controller.sal.action.ActionType) to PopVlanActionCase class (of org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCase).&lt;br/&gt;
FlowProgrammerAdapter class (of org.opendaylight.controller.sal.compatibility) class passed PopVlanActionCase to the new OF plugin.&lt;br/&gt;
However, it seemed to me that the new OF plugin ignored PopVlanActionCase for OpenFlow 1.0, although the new OF plugin handle PopVlanActionCase as a &quot;Strip VLAN header&quot; action.&lt;/p&gt;



&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;What I used&amp;#93;&lt;/span&gt;&lt;br/&gt;
The latest version of the Virtualization Edition on 5th June.&lt;/p&gt;

&lt;p&gt;$ pwd&lt;br/&gt;
/home/odp/work/integration&lt;/p&gt;

&lt;p&gt;odc180 $ git log -3 --oneline&lt;br/&gt;
90e2f0c &lt;a href=&quot;https://jira.opendaylight.org/browse/INTDIST-4&quot; title=&quot;ConfigPusher failed on toster config file and stopped new OF plugin to connect switches&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INTDIST-4&quot;&gt;&lt;del&gt;INTEGRAT-4&lt;/del&gt;&lt;/a&gt;: Remove toaster from virt edition&lt;br/&gt;
64e608a Adding extra TCs for RESTCONF&lt;br/&gt;
3516960 Uploaded working AD-SAL cluster testcases&lt;/p&gt;


&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;How to produce&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;1. Start up the Virtualization edition with of13 and vtn option.&lt;/p&gt;

&lt;p&gt;$ ./run.sh -of13 -virt vtn&lt;/p&gt;


&lt;p&gt;2. Create a virtual bridge using REST API exposed by VTN Manager.&lt;/p&gt;

&lt;p&gt;curl  --user &quot;admin&quot;:&quot;admin&quot; -H &quot;Accept: application/json&quot; -H \&lt;br/&gt;
    &quot;Content-type: application/json&quot; -X POST \&lt;br/&gt;
    &lt;a href=&quot;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1&lt;/a&gt; \&lt;br/&gt;
    -d &apos;&lt;/p&gt;
{&quot;description&quot;: &quot;Virtual Tenat 1&quot;}
&lt;p&gt;&apos;&lt;/p&gt;

&lt;p&gt;curl  --user &quot;admin&quot;:&quot;admin&quot; -H &quot;Accept: application/json&quot; -H \&lt;br/&gt;
    &quot;Content-type: application/json&quot; -X POST \&lt;br/&gt;
    &lt;a href=&quot;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1&lt;/a&gt; \&lt;br/&gt;
    -d &apos;{}&apos;&lt;/p&gt;

&lt;p&gt;curl  --user &quot;admin&quot;:&quot;admin&quot; -H &quot;Accept: application/json&quot; -H \&lt;br/&gt;
    &quot;Content-type: application/json&quot; -X POST \&lt;br/&gt;
    &lt;a href=&quot;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if1&lt;/a&gt; \&lt;br/&gt;
    -d &apos;{}&apos;&lt;/p&gt;

&lt;p&gt;curl  --user &quot;admin&quot;:&quot;admin&quot; -H &quot;Accept: application/json&quot; -H \&lt;br/&gt;
    &quot;Content-type: application/json&quot; -X POST \&lt;br/&gt;
    &lt;a href=&quot;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if2&lt;/a&gt; \&lt;br/&gt;
    -d &apos;{}&apos;&lt;/p&gt;

&lt;p&gt;curl  --user &quot;admin&quot;:&quot;admin&quot; -H &quot;Accept: application/json&quot; -H \&lt;br/&gt;
    &quot;Content-type: application/json&quot; -X PUT \&lt;br/&gt;
    &lt;a href=&quot;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if1/portmap&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if1/portmap&lt;/a&gt; \&lt;br/&gt;
    -d &apos;{&quot;node&quot;: &lt;/p&gt;
{&quot;type&quot;:&quot;MD_SAL&quot;,&quot;id&quot;:&quot;openflow:3&quot;}
&lt;p&gt;, &quot;port&quot;: {&quot;name&quot;: &quot;s3-eth1&quot;}}&apos;&lt;/p&gt;


&lt;p&gt;curl  --user &quot;admin&quot;:&quot;admin&quot; -H &quot;Accept: application/json&quot; -H \&lt;br/&gt;
    &quot;Content-type: application/json&quot; -X PUT \&lt;br/&gt;
    &lt;a href=&quot;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if2/portmap&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.60.180:8080/controller/nb/v2/vtn/default/vtns/vtn1/vbridges/vbr1/interfaces/if2/portmap&lt;/a&gt; \&lt;br/&gt;
    -d &apos;{&quot;node&quot;: &lt;/p&gt;
{&quot;type&quot;:&quot;MD_SAL&quot;,&quot;id&quot;:&quot;openflow:7&quot;}
&lt;p&gt;, &quot;port&quot;: {&quot;name&quot;: &quot;s7-eth2&quot;}}&apos;&lt;/p&gt;


&lt;p&gt;3. Run Mininet and run OF1.0 switches.&lt;/p&gt;

&lt;p&gt;sudo mn --controller=remote,192.168.60.180 --topo tree,3&lt;/p&gt;


&lt;p&gt;4. Send ping packets from h1 to h8.&lt;/p&gt;

&lt;p&gt;mininet&amp;gt; h1 ping h8&lt;/p&gt;


&lt;p&gt;5. Check flow entires in mininet.&lt;/p&gt;

&lt;p&gt;Check that &quot;Strip VLAN header&quot; is not set in flow entries, although the first entry on s3 should have a &quot;Strip VLAN header&quot; action.&lt;/p&gt;

&lt;p&gt;mininet&amp;gt; dpctl dump-flows&lt;br/&gt;
(snip)&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;ul&gt;
		&lt;li&gt;
		&lt;ul&gt;
			&lt;li&gt;s3 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;br/&gt;
 cookie=0x0, duration=38.36s, table=0, n_packets=0, n_bytes=0, idle_age=38, priority=10,in_port=3,dl_vlan=0,dl_src=12:b9:e4:17:cb:ef,dl_dst=6e:59:89:b8:2a:6e actions=output:1&lt;br/&gt;
 cookie=0x0, duration=38.317s, table=0, n_packets=0, n_bytes=0, idle_timeout=300, idle_age=38, priority=10,in_port=1,dl_vlan=0,dl_src=6e:59:89:b8:2a:6e,dl_dst=12:b9:e4:17:cb:ef actions=output:3&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;The old OF plugin case&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;When I run the Virtualization edition with the old OF plugin and executed the same scenario, a flow entry on Mininet was as follows. &lt;/p&gt;

&lt;p&gt;The first entry had a &quot;Strip VLAN header&quot; action.&lt;/p&gt;

&lt;p&gt;mininet&amp;gt; dpctl dump-flows&lt;br/&gt;
(snip)&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;ul&gt;
		&lt;li&gt;
		&lt;ul&gt;
			&lt;li&gt;s3 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;br/&gt;
 cookie=0x0, duration=26.164s, table=0, n_packets=5, n_bytes=434, idle_age=21, priority=10,in_port=3,vlan_tci=0x0000,dl_src=3e:70:34:62:4c:5d,dl_dst=f6:57:ab:52:db:f2 actions=strip_vlan,output:1&lt;br/&gt;
 cookie=0x0, duration=26.152s, table=0, n_packets=5, n_bytes=434, idle_timeout=300, idle_age=21, priority=10,in_port=1,vlan_tci=0x0000,dl_src=f6:57:ab:52:db:f2,dl_dst=3e:70:34:62:4c:5d actions=output:3&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment>&lt;p&gt;Operating System: Linux&lt;br/&gt;
Platform: PC&lt;/p&gt;</environment>
        <key id="27451">OPNFLWPLUG-183</key>
            <summary>The new OF plugin doesn&apos;t set &quot;Strip VLAN header&quot; action into OF 1.0 switches</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="10000">Done</resolution>
                                        <assignee username="Hideyuki1985">Hideyuki Tai</assignee>
                                    <reporter username="Hideyuki1985">Hideyuki Tai</reporter>
                        <labels>
                    </labels>
                <created>Fri, 6 Jun 2014 11:12:53 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:13 +0000</updated>
                            <resolved>Mon, 23 Jun 2014 02:03:25 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="55738" author="hideyuki.tai@necam.com" created="Fri, 6 Jun 2014 11:36:33 +0000"  >&lt;p&gt;Additional information on the new OF plugin on OF 1.0 switches.&lt;br/&gt;
---------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;To check the behavior of the new OF plugin for PopVlanActionCase class (of org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCase), I executed test case f29 of &quot;Test Provider&quot; of OpenFlow Plugin project.&lt;/p&gt;

&lt;p&gt;I&apos;ve found out that when the new OF plugin receives request to create a flow entry which has a &quot;Strip VLAN header&quot; action, it does not send a FLOW_MOD message.&lt;/p&gt;


&lt;p&gt;OpenFlow 1.0 has &quot;Strip VLAN header&quot; action, but not &quot;Pop VLAN header&quot;.&lt;br/&gt;
OpenFlow 1.3 has &quot;Pop VLAN header&quot; action, but not &quot;Strip VLAN header&quot;.&lt;/p&gt;

&lt;p&gt;So to let MD-SAL abstract this action, I think OF plugin should handle PopVlanActionCase class as &quot;Strip VLAN header&quot; action for OpenFlow 1.0 switches.&lt;/p&gt;



&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;What I used&amp;#93;&lt;/span&gt;&lt;br/&gt;
The latest code of OpenFlow plugin project on 5th June.&lt;/p&gt;

&lt;p&gt;$ git log -3 --oneline&lt;br/&gt;
74417f0 BUG-1134: Added TCP flag conversions between md-sal and openflowjava&lt;br/&gt;
0326de0 Optimize string splitting by using Splitter class&lt;br/&gt;
87fdc8e Improve InjectionKey performance&lt;/p&gt;


&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;How to produce&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;1. Build a controller using code of the Git repository of OpenFlow plugin project, and run it.&lt;/p&gt;

&lt;p&gt;$ ./run.s&lt;/p&gt;


&lt;p&gt;2. Run Mininet and run OF1.0 switches.&lt;/p&gt;

&lt;p&gt;sudo mn --controller=remote,192.168.60.180 --topo tree,3&lt;/p&gt;


&lt;p&gt;3. Try to install a flow entry.&lt;/p&gt;

&lt;p&gt;Execute the following command on OSGi console.&lt;/p&gt;

&lt;p&gt;osgi&amp;gt; addMDFlow openflow:1 f29&lt;/p&gt;


&lt;p&gt;This command let the new OF plugin install a flow entry which has &quot;Pop VLAN header&quot; action.&lt;/p&gt;

&lt;p&gt;See &quot;OpenflowpluginTestCommandProvider.java&quot;.&lt;/p&gt;

&lt;p&gt; 391         case &quot;f29&quot;:&lt;br/&gt;
 392             id += 29;&lt;br/&gt;
 393             flow.setMatch(createMatch1().build());&lt;br/&gt;
 394             flow.setInstructions(createAppyActionInstruction21().build());&lt;br/&gt;
 395             break;&lt;br/&gt;
(snip)&lt;br/&gt;
1613&lt;br/&gt;
1614     private static InstructionsBuilder createAppyActionInstruction21() {&lt;br/&gt;
1615&lt;br/&gt;
1616         List&amp;lt;Action&amp;gt; actionList = new ArrayList&amp;lt;Action&amp;gt;();&lt;br/&gt;
1617         ActionBuilder ab = new ActionBuilder();&lt;br/&gt;
1618&lt;br/&gt;
1619         PopVlanActionBuilder popVlanActionBuilder = new PopVlanActionBuilder();&lt;br/&gt;
1620         ab.setAction(new PopVlanActionCaseBuilder().setPopVlanAction(popVlanActionBuilder.build()).build());&lt;br/&gt;
1621         ab.setKey(new ActionKey(0));&lt;br/&gt;
1622         actionList.add(ab.build());&lt;br/&gt;
1623&lt;br/&gt;
1624         // Create an Apply Action&lt;br/&gt;
1625         ApplyActionsBuilder aab = new ApplyActionsBuilder();&lt;br/&gt;
1626         aab.setAction(actionList);&lt;/p&gt;

&lt;p&gt;5. Check flow entires in mininet.&lt;/p&gt;


&lt;p&gt;mininet&amp;gt; dpctl dump-flows&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;ul&gt;
		&lt;li&gt;
		&lt;ul&gt;
			&lt;li&gt;s1 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;/li&gt;
			&lt;li&gt;s2 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;/li&gt;
			&lt;li&gt;s3 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;/li&gt;
			&lt;li&gt;s4 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;/li&gt;
			&lt;li&gt;s5 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;/li&gt;
			&lt;li&gt;s6 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;/li&gt;
			&lt;li&gt;s7 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;br/&gt;
mininet&amp;gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="55739" author="abhijit2511" created="Sat, 7 Jun 2014 00:55:56 +0000"  >&lt;p&gt;Kamal,&lt;/p&gt;

&lt;p&gt;Can you take a look at this one as well on Monday? Hopefully we can have it done on Monday.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Abhijit&lt;/p&gt;</comment>
                            <comment id="55740" author="kramesha@cisco.com" created="Tue, 10 Jun 2014 22:03:02 +0000"  >&lt;p&gt;The flow which gets written to the Configuration store in FlowProgrammerAdapter has the correct Actions :&lt;/p&gt;
{PopVLan and OutputAction}
&lt;p&gt;. But when the FlowChangeListener gets called after the store change, the PopVLanAction is missing.&lt;/p&gt;

&lt;p&gt;FlowProgrammerAdapter.writeFlowAsync()&lt;br/&gt;
------------------------------------------------------------&lt;br/&gt;
ApplyActions [_action=[&lt;br/&gt;
Action [_order=0, _key=ActionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, _action=PopVlanActionCase [augmentation=[]], augmentation=[]], &lt;br/&gt;
Action [_order=1, _key=ActionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=1&amp;#93;&lt;/span&gt;, _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=openflow:7:2&amp;#93;&lt;/span&gt;, augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]&lt;/p&gt;

&lt;p&gt;FlowChangeListener.add(), DataObject has the following actions. Note the PopVlanActionCase missing&lt;br/&gt;
------------------------------------------------&lt;br/&gt;
ApplyActions [_action=[&lt;br/&gt;
Action [_order=1, _key=ActionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=1&amp;#93;&lt;/span&gt;, _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=openflow:7:2&amp;#93;&lt;/span&gt;, augmentation=[]], augmentation=[]], augmentation=[]], &lt;br/&gt;
Action [_order=0, _key=ActionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, augmentation=[]]], augmentation=[]]&lt;/p&gt;

&lt;p&gt;I am not sure how the actions get serialized/deserialized in the Config store and how the DataObject  gets created? Will keep investigating..&lt;/p&gt;</comment>
                            <comment id="55741" author="kramesha@cisco.com" created="Wed, 11 Jun 2014 02:47:15 +0000"  >&lt;p&gt;Following gerrits are submitted for review:&lt;/p&gt;

&lt;p&gt;Controller: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/7886/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/7886/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OFP: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/7887/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/7887/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I could see the flows with strip_vlan getting written to the switch&lt;/p&gt;

&lt;p&gt;NXST_FLOW reply (xid=0x4):&lt;br/&gt;
 cookie=0x0, duration=0.55s, table=0, n_packets=0, n_bytes=0, idle_timeout=300, idle_age=0, priority=10,in_port=1,vlan_tci=0x0000,dl_src=2a:2f:6a:58:24:2f,dl_dst=f6:86:02:67:c8:b2 actions=output:3&lt;br/&gt;
 cookie=0x0, duration=0.541s, table=0, n_packets=0, n_bytes=0, idle_age=0, priority=10,in_port=3,vlan_tci=0x0000,dl_src=f6:86:02:67:c8:b2,dl_dst=2a:2f:6a:58:24:2f actions=output:1,strip_vlan&lt;/p&gt;</comment>
                            <comment id="55742" author="hagbard@gmail.com" created="Thu, 12 Jun 2014 21:33:07 +0000"  >&lt;p&gt;Hideyuki, could you retest?&lt;/p&gt;</comment>
                            <comment id="55743" author="hideyuki.tai@necam.com" created="Fri, 13 Jun 2014 01:38:34 +0000"  >&lt;p&gt;(In reply to Ed Warnicke from comment #5)&lt;br/&gt;
&amp;gt; Hideyuki, could you retest?&lt;/p&gt;

&lt;p&gt;I&apos;ll test it today.&lt;/p&gt;</comment>
                            <comment id="55744" author="hideyuki.tai@necam.com" created="Fri, 13 Jun 2014 13:30:07 +0000"  >&lt;p&gt;(In reply to Hideyuki Tai from comment #6)&lt;br/&gt;
&amp;gt; (In reply to Ed Warnicke from comment #5)&lt;br/&gt;
&amp;gt; &amp;gt; Hideyuki, could you retest?&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; I&apos;ll test it today.&lt;/p&gt;

&lt;p&gt;I re-executed the same scenario I written in comment #1.&lt;br/&gt;
However, I saw the same issue again.&lt;/p&gt;

&lt;p&gt;I captured all packets on OpenFlow channel using tcpdump command, and checked them.&lt;br/&gt;
However, all FLOW_MOD messages didn&apos;t have a &quot;Strip VLAN header&quot; action.&lt;/p&gt;

&lt;p&gt;When I had Mininet send ping packets, I saw many many WARN messages as follows.&lt;br/&gt;
I&apos;m not sure if these WARN messages are related to the issue.&lt;/p&gt;

&lt;p&gt;2014-06-13 09:46:48.978 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;pool-15-thread-2&amp;#93;&lt;/span&gt; WARN  o.o.y.s.b.g.i.RuntimeGeneratedMappingServiceImpl - Failed to deserialize entry (urn:opendaylight:invento&lt;br/&gt;
ry?revision=2013-08-19)nodes/(urn:opendaylight:inventory?revision=2013-08-19)node[&lt;/p&gt;
{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}
&lt;p&gt;]/(urn:opend&lt;br/&gt;
aylight:flow:inventory?revision=2013-08-19)table[&lt;/p&gt;
{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=0}
&lt;p&gt;]/(urn:opendaylight:flow:inventory?revision=2013-&lt;br/&gt;
08-19)flow[&lt;/p&gt;
{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=9f3a1348-8fdf-465d-a54c-78a820192324}
&lt;p&gt;]/(urn:opendaylight:flow:inventory?revision=2013-08-&lt;br/&gt;
19)match/(urn:opendaylight:flow:inventory?revision=2013-08-19)vlan-match&lt;br/&gt;
2014-06-13 09:46:48.979 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;pool-15-thread-2&amp;#93;&lt;/span&gt; WARN  o.o.c.m.s.b.i.AbstractForwardedDataBroker - Failed to transform (urn:opendaylight:inventory?revision=201&lt;br/&gt;
3-08-19)nodes/(urn:opendaylight:inventory?revision=2013-08-19)node/(urn:opendaylight:inventory?revision=2013-08-19)node[&lt;/p&gt;
{(urn:opendaylight:inventory?revision
=2013-08-19)id=openflow:1}
&lt;p&gt;]/AugmentationIdentifier&lt;/p&gt;
{childNames=[(urn:opendaylight:flow:inventory?revision=2013-08-19)description, (urn:opendaylight:flow:inven
tory?revision=2013-08-19)group, (urn:opendaylight:flow:inventory?revision=2013-08-19)hardware, (urn:opendaylight:flow:inventory?revision=2013-08-19)manufactu
rer, (urn:opendaylight:flow:inventory?revision=2013-08-19)meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)serial-number, (urn:opendaylight:flow:i
nventory?revision=2013-08-19)software, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-actions, (urn:opendaylight:flow:inventory?revision=2013
-08-19)supported-instructions, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-match-types, (urn:opendaylight:flow:inventory?revision=2013-08-
19)switch-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)table]}
&lt;p&gt;/(urn:opendaylight:flow:inventory?revision=2013-08-19)table/(urn:opendaylight&lt;br/&gt;
:flow:inventory?revision=2013-08-19)table[&lt;/p&gt;
{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=0}
&lt;p&gt;]/(urn:opendaylight:flow:inventory?revision=2013-08-19)f&lt;br/&gt;
low/(urn:opendaylight:flow:inventory?revision=2013-08-19)flow[&lt;/p&gt;
{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=9f3a1348-8fdf-465d-a54c-78a820192324}
&lt;p&gt;]&lt;br/&gt;
/(urn:opendaylight:flow:inventory?revision=2013-08-19)match/(urn:opendaylight:flow:inventory?revision=2013-08-19)vlan-match=ImmutableContainerNode{nodeIdenti&lt;br/&gt;
fier=(urn:opendaylight:flow:inventory?revision=2013-08-19)vlan-match, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:flow:inventory?revision=&lt;br/&gt;
2013-08-19)vlan-id, value=&lt;span class=&quot;error&quot;&gt;&amp;#91;ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:flow:inventory?revision=2013-08-19)vlan-id, value=0, attributes={}}&amp;#93;&lt;/span&gt;, attribute&lt;br/&gt;
s={}}], attributes={}}, omitting it&lt;br/&gt;
org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException: Entry deserialization failed&lt;br/&gt;
    at org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl.fromDataDom(RuntimeGeneratedMappingServiceImpl.java:311) ~[bu&lt;br/&gt;
ndlefile:na]&lt;br/&gt;
    at org.opendaylight.controller.config.yang.md.sal.binding.impl.RuntimeMappingModule$RuntimeGeneratedMappingServiceProxy.fromDataDom(RuntimeMappingModule.&lt;br/&gt;
java:151) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toBindingImpl(BindingToNormalizedNodeCodec.java:202) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toBinding(BindingToNormalizedNodeCodec.java:132) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toBinding(BindingToNormalizedNodeCodec.java:258) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.toBinding(AbstractForwardedDataBroker.java:99) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker$TranslatedDataChangeEvent.getCreatedData(AbstractForwardedDataBroker.java:&lt;br/&gt;
183) &lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.LegacyDataChangeEvent$ConfigurationChangeEvent.getCreatedConfigurationData(LegacyDataChangeEvent.java:&lt;br/&gt;
163) &lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.frm.AbstractChangeListener.onDataChanged(AbstractChangeListener.java:35) &lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker$BackwardsCompatibleConfigurationDataChangeInvoker.onDataChanged&lt;br/&gt;
(ForwardedBackwardsCompatibleDataBroker.java:458) &lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker$TranslatingDataChangeInvoker.onDataChanged(AbstractForwardedDataBroker.jav&lt;br/&gt;
a:158) &lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.controller.md.sal.dom.store.impl.ChangeListenerNotifyTask.run(ChangeListenerNotifyTask.java:33) &lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) &lt;span class=&quot;error&quot;&gt;&amp;#91;na:1.7.0_15&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) &lt;span class=&quot;error&quot;&gt;&amp;#91;na:1.7.0_15&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) &lt;span class=&quot;error&quot;&gt;&amp;#91;na:1.7.0_15&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) &lt;span class=&quot;error&quot;&gt;&amp;#91;na:1.7.0_15&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) &lt;span class=&quot;error&quot;&gt;&amp;#91;na:1.7.0_15&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at java.lang.Thread.run(Thread.java:722) &lt;span class=&quot;error&quot;&gt;&amp;#91;na:1.7.0_15&amp;#93;&lt;/span&gt;&lt;br/&gt;
Caused by: java.lang.IllegalStateException: Failed to lookup instantiated type for path SchemaPath [path=[(urn:opendaylight:inventory?revision=2013-08-19)nod&lt;br/&gt;
es, (urn:opendaylight:inventory?revision=2013-08-19)node, (urn:opendaylight:flow:inventory?revision=2013-08-19)table, (urn:opendaylight:flow:inventory?revisi&lt;br/&gt;
on=2013-08-19)flow, (urn:opendaylight:flow:inventory?revision=2013-08-19)match], absolute=true]&lt;br/&gt;
    at com.google.common.base.Preconditions.checkState(Preconditions.java:176) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry.getClassForPath(LazyGeneratedCodecRegistry.java:205) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.yangtools.sal.binding.generator.impl.InstanceIdentifierCodecImpl.deserializeNodeIdentifier(InstanceIdentifierCodecImpl.java:99) ~[bun&lt;br/&gt;
dlefile:na]&lt;br/&gt;
    at org.opendaylight.yangtools.sal.binding.generator.impl.InstanceIdentifierCodecImpl.deserializePathArgument(InstanceIdentifierCodecImpl.java:219) ~[bund&lt;br/&gt;
lefile:na]&lt;br/&gt;
    at org.opendaylight.yangtools.sal.binding.generator.impl.InstanceIdentifierCodecImpl.deserialize(InstanceIdentifierCodecImpl.java:69) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;bundlefile:na&amp;#93;&lt;/span&gt;&lt;br/&gt;
    at org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl.fromDataDom(RuntimeGeneratedMappingServiceImpl.java:308) ~[bu&lt;br/&gt;
ndlefile:na]&lt;br/&gt;
    ... 17 common frames omitted&lt;/p&gt;


&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;What I used&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I pulled the latest code of Integration Git repository, and built the Virtualization Edition on 13th June.&lt;/p&gt;

&lt;p&gt;$ git log -3 --oneline&lt;br/&gt;
1bf19ab Merge &quot;Change test case name&quot;&lt;br/&gt;
10b7b45 Merge &quot;Introduce the OpenDaylight Toaster Edition&quot;&lt;br/&gt;
5ba7a23 Introduce the OpenDaylight Toaster Edition&lt;/p&gt;</comment>
                            <comment id="55745" author="kramesha@cisco.com" created="Fri, 13 Jun 2014 16:39:38 +0000"  >&lt;p&gt;I did a git pull on my integration repo. &lt;/p&gt;

&lt;p&gt;I am not seeing the patches for 1137 and 1152 in the git log&lt;/p&gt;

&lt;p&gt;git log --author=&quot;Kamal&quot; does not return anything.&lt;/p&gt;

&lt;p&gt;Am i missing something here?&lt;/p&gt;</comment>
                            <comment id="55746" author="hagbard@gmail.com" created="Wed, 18 Jun 2014 12:00:00 +0000"  >&lt;p&gt;Kamal,&lt;/p&gt;

&lt;p&gt;The integration repo just assembles the various components... I suspect any fixes you did were against the openflowplugin, openflowjava, or controller repos.&lt;/p&gt;

&lt;p&gt;So its not at all surprising that there are no commits from you in the integration repo... its just pom files for assembling stuff and test cases.&lt;/p&gt;</comment>
                            <comment id="55747" author="kramesha@cisco.com" created="Thu, 19 Jun 2014 22:24:30 +0000"  >&lt;p&gt;The attachment shows the Strip Vlan Action in the flow mod message&lt;/p&gt;</comment>
                            <comment id="55751" author="kramesha@cisco.com" created="Thu, 19 Jun 2014 22:24:30 +0000"  >&lt;p&gt;Attachment Screen Shot 2014-06-19 at 3.05.58 PM.png has been added with description: Strip VLan Action in FlowMod&lt;/p&gt;</comment>
                            <comment id="55748" author="kramesha@cisco.com" created="Thu, 19 Jun 2014 22:25:36 +0000"  >&lt;p&gt;Hi Hideyuki,&lt;/p&gt;

&lt;p&gt;I took the latest of integration and tried the scenario again. I am not able to reproduce the issue you are facing. Please let me know where i might be going wrong. &lt;br/&gt;
Here are my complete steps:&lt;/p&gt;

&lt;p&gt;1. Took the latest from integration , did a maven clean install.&lt;/p&gt;

&lt;p&gt;2. Ran the controller from the integration/vtn distribution&lt;br/&gt;
$ ./run.sh -of13 -virt vtn &#8211;debug -Xmx2G -XX:MaxPermSize=256M -Dio.netty.leakDetectionLevel=advanced&lt;/p&gt;

&lt;p&gt;3. Created the virtual bridge as listed in your 2nd step&lt;/p&gt;

&lt;p&gt;4. On mininet VM , ran wireshark and configured it to filter on &quot;of&quot; &lt;/p&gt;

&lt;p&gt;5. Ran mininet : sudo mn --controller=remote,192.168.56.1 --topo tree,3&lt;/p&gt;

&lt;p&gt;6. Started capturing packets in wireshark&lt;/p&gt;

&lt;p&gt;7. Ran h1 ping h8 on mininet. And then later stopped capturing packets in wireshark.&lt;/p&gt;

&lt;p&gt;8. the flows in the switch gives the below response, &lt;/p&gt;

&lt;p&gt;NOTE: One of the actions have strip_vlan&lt;/p&gt;

&lt;p&gt;mininet@mininet-vm:~\&amp;gt; sudo ovs-ofctl dump-flows s3&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;br/&gt;
 cookie=0x0, duration=0.088s, table=0, n_packets=0, n_bytes=0, idle_age=0, priority=10,in_port=3,vlan_tci=0x0000,dl_src=26:80:70:be:18:51,dl_dst=6e:0e:5a:e3:7d:53 actions=output:1,strip_vlan&lt;br/&gt;
 cookie=0x0, duration=0.139s, table=0, n_packets=0, n_bytes=0, idle_timeout=300, idle_age=0, priority=10,in_port=1,vlan_tci=0x0000,dl_src=6e:0e:5a:e3:7d:53,dl_dst=26:80:70:be:18:51 actions=output:3&lt;/p&gt;

&lt;p&gt;mininet@mininet-vm:~\&amp;gt; sudo ovs-ofctl dump-flows s7&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;br/&gt;
 cookie=0x0, duration=2.727s, table=0, n_packets=3, n_bytes=238, idle_age=0, priority=10,in_port=3,vlan_tci=0x0000,dl_src=6e:0e:5a:e3:7d:53,dl_dst=26:80:70:be:18:51 actions=output:2,strip_vlan&lt;br/&gt;
 cookie=0x0, duration=2.662s, table=0, n_packets=3, n_bytes=238, idle_timeout=300, idle_age=0, priority=10,in_port=2,vlan_tci=0x0000,dl_src=26:80:70:be:18:51,dl_dst=6e:0e:5a:e3:7d:53 actions=output:3&lt;/p&gt;

&lt;p&gt;9. Took a snapshot of the wireshark Flow_Mod. The snapshot shows the Action with &quot;Type: Strip the 802.1q header. (3)&quot;. Find the snapshot attached.&lt;/p&gt;

&lt;p&gt;Note: All the flow mods DON&apos;T have the strip_vlan action. &lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Kamal&lt;/p&gt;</comment>
                            <comment id="55749" author="kramesha@cisco.com" created="Fri, 20 Jun 2014 18:25:00 +0000"  >&lt;p&gt;Hi Hideyuki,&lt;/p&gt;

&lt;p&gt;Based on my last update, can you let me know, if it works for you or what i am doing wrong in my testing.&lt;/p&gt;

&lt;p&gt;In case it works for you, please mark it resolved.&lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Kamal&lt;/p&gt;</comment>
                            <comment id="55750" author="hideyuki.tai@necam.com" created="Mon, 23 Jun 2014 02:03:25 +0000"  >&lt;p&gt;(In reply to Kamal Rameshan from comment #12)&lt;br/&gt;
&amp;gt; Hi Hideyuki,&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Based on my last update, can you let me know, if it works for you or what i&lt;br/&gt;
&amp;gt; am doing wrong in my testing.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; In case it works for you, please mark it resolved.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Thanks&lt;br/&gt;
&amp;gt; Kamal&lt;/p&gt;

&lt;p&gt;Hi Kamal,&lt;/p&gt;

&lt;p&gt;Thank you for creating the patch.&lt;br/&gt;
I&apos;ve confirmed that your patch fixes the problem.&lt;/p&gt;


&lt;p&gt;I pulled the latest code of Integration Git repository, and built the Virtualization Edition on 23rd June.&lt;br/&gt;
Using the Virt Edition, I retested the same scenario I written in comment #1.&lt;br/&gt;
On the test, I captured all packets on OpenFlow channels, and I confirmed that the controller correctly &quot;Strip VLAN header&quot; action in FLOW_MOD messages.&lt;/p&gt;

&lt;p&gt;A flow table on Mininet has a flow entry which has &quot;Strip VLAN header&quot; action:&lt;/p&gt;

&lt;p&gt;mininet&amp;gt; dpctl dump-flows&lt;br/&gt;
(snip)&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;ul&gt;
		&lt;li&gt;
		&lt;ul&gt;
			&lt;li&gt;s3 ------------------------------------------------------------------------&lt;br/&gt;
NXST_FLOW reply (xid=0x4):&lt;br/&gt;
 cookie=0x0, duration=7.966s, table=0, n_packets=5, n_bytes=434, idle_age=3, priority=10,in_port=3,vlan_tci=0x0000,dl_src=f2:4d:09:09:b0:86,dl_dst=5e:56:cc:04:93:22 actions=output:1,strip_vlan&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;About Comment 7.&lt;br/&gt;
I&apos;m sorry that it seems that I did something wrong in my testing so that I missed Kamal&apos;s patches fixed the problem.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13875" name="Screen Shot 2014-06-19 at 3.05.58 PM.png" size="973052" author="kramesha@cisco.com" created="Thu, 19 Jun 2014 22:24:30 +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>1152</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=1152]]></customfieldvalue>

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

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