<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:36:03 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>[OVSDB-309] Arp flows are not getting installed properly in compute nodes</title>
                <link>https://jira.opendaylight.org/browse/OVSDB-309</link>
                <project id="10158" key="OVSDB">ovsdb</project>
                    <description>&lt;p&gt;I am analyzing   ARP responder feature in ODL using openstack.&lt;br/&gt;
Am using one control and 2 compute nodes.&lt;br/&gt;
Created two networks (tenant1 and tenant2)&lt;/p&gt;

&lt;p&gt;While  Adding router interface with tenant1 , arp flows are installed both control and compute nodes as expected for DHCP port and default gateway.&lt;/p&gt;

&lt;p&gt;And then, if  I added router interface with  tenant2,  in control node arp flows are installed as expected, but, in compute nodes teanant1 default gateway IP is overwritten with teanant2 default gateway IP.&lt;/p&gt;

&lt;p&gt;Please find below dump flows:&lt;/p&gt;

&lt;p&gt;Added Router interface with tenant1 (10.0.0.0/24)&lt;/p&gt;

&lt;p&gt;Control node :&lt;/p&gt;

&lt;p&gt; cookie=0x0, duration=496.642s, table=0, n_packets=3, n_bytes=258, priority=0 actions=goto_table:20&lt;br/&gt;
 cookie=0x0, duration=76.476s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x412,arp_tpa=10.0.0.2,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:a4:7b:03&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ea47b03-&amp;gt;NXM_NX_ARP_SHA[],load:0xa000002-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=45.164s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x400,arp_tpa=20.0.0.2,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:3c:f1:d5&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163e3cf1d5-&amp;gt;NXM_NX_ARP_SHA[],load:0x14000002-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=2.998s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x412,arp_tpa=10.0.0.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:a4:bf:1b&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ea4bf1b-&amp;gt;NXM_NX_ARP_SHA[],load:0xa000001-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=496.642s, table=20, n_packets=16, n_bytes=1296, priority=0 actions=goto_table:30&lt;/p&gt;



&lt;p&gt;Compute1:&lt;/p&gt;

&lt;p&gt; cookie=0x0, duration=314.362s, table=0, n_packets=10, n_bytes=788, priority=0 actions=goto_table:20&lt;br/&gt;
 cookie=0x0, duration=8.498s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x412,arp_tpa=10.0.0.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:a4:bf:1b&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ea4bf1b-&amp;gt;NXM_NX_ARP_SHA[],load:0xa000001-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=314.362s, table=20, n_packets=10, n_bytes=788, priority=0 actions=goto_table:30&lt;/p&gt;



&lt;p&gt;Compute2:&lt;/p&gt;

&lt;p&gt; cookie=0x0, duration=313.912s, table=0, n_packets=10, n_bytes=788, priority=0 actions=goto_table:20&lt;br/&gt;
 cookie=0x0, duration=14.214s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x412,arp_tpa=10.0.0.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:a4:bf:1b&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ea4bf1b-&amp;gt;NXM_NX_ARP_SHA[],load:0xa000001-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=313.912s, table=20, n_packets=10, n_bytes=788, priority=0 actions=goto_table:30&lt;/p&gt;



&lt;p&gt;Added Router interface with tenant2 (20.0.0.0/24)&lt;/p&gt;

&lt;p&gt;Control:&lt;/p&gt;

&lt;p&gt; cookie=0x0, duration=591.999s, table=0, n_packets=3, n_bytes=258, priority=0 actions=goto_table:20&lt;br/&gt;
 cookie=0x0, duration=140.521s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x400,arp_tpa=20.0.0.2,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:3c:f1:d5&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163e3cf1d5-&amp;gt;NXM_NX_ARP_SHA[],load:0x14000002-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=171.833s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x412,arp_tpa=10.0.0.2,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:a4:7b:03&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ea47b03-&amp;gt;NXM_NX_ARP_SHA[],load:0xa000002-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=98.355s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x412,arp_tpa=10.0.0.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:a4:bf:1b&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ea4bf1b-&amp;gt;NXM_NX_ARP_SHA[],load:0xa000001-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=8.945s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x400,arp_tpa=20.0.0.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:e6:97:f1&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ee697f1-&amp;gt;NXM_NX_ARP_SHA[],load:0x14000001-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=591.999s, table=20, n_packets=16, n_bytes=1296, priority=0 actions=goto_table:30&lt;/p&gt;



&lt;p&gt;Compute1:&lt;/p&gt;

&lt;p&gt; cookie=0x0, duration=427.876s, table=0, n_packets=10, n_bytes=788, priority=0 actions=goto_table:20&lt;br/&gt;
 cookie=0x0, duration=32.892s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x400,arp_tpa=20.0.0.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:e6:97:f1&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ee697f1-&amp;gt;NXM_NX_ARP_SHA[],load:0x14000001-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=427.876s, table=20, n_packets=10, n_bytes=788, priority=0 actions=goto_table:30&lt;/p&gt;



&lt;p&gt;Compute2:&lt;/p&gt;

&lt;p&gt; cookie=0x0, duration=450.695s, table=0, n_packets=10, n_bytes=788, priority=0 actions=goto_table:20&lt;br/&gt;
 cookie=0x0, duration=61.874s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x400,arp_tpa=20.0.0.1,arp_op=1 actions=move:NXM_OF_ETH_SRC[]&lt;del&gt;&amp;gt;NXM_OF_ETH_DST[],set_field:fa:16:3e:e6:97:f1&lt;/del&gt;&amp;gt;eth_src,load:0x2-&amp;gt;NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]&lt;del&gt;&amp;gt;NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]&lt;/del&gt;&amp;gt;NXM_OF_ARP_TPA[],load:0xfa163ee697f1-&amp;gt;NXM_NX_ARP_SHA[],load:0x14000001-&amp;gt;NXM_OF_ARP_SPA[],IN_PORT&lt;br/&gt;
 cookie=0x0, duration=450.695s, table=20, n_packets=10, n_bytes=788, priority=0 actions=goto_table:30&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="22001">OVSDB-309</key>
            <summary>Arp flows are not getting installed properly in compute nodes</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="oshvartz@redhat.com">Oded Shvartz</assignee>
                                    <reporter username="HariPrasidh">Hari Prasidh</reporter>
                        <labels>
                    </labels>
                <created>Fri, 26 Feb 2016 10:57:53 +0000</created>
                <updated>Mon, 30 Oct 2017 15:36:33 +0000</updated>
                            <resolved>Mon, 21 Mar 2016 21:48:08 +0000</resolved>
                                    <version>unspecified</version>
                                                    <component>openstack.net-virt</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="41342" author="hariprasidh" created="Fri, 26 Feb 2016 10:57:53 +0000"  >&lt;p&gt;Attachment karaf_logs.zip has been added with description: karaf_logs&lt;/p&gt;</comment>
                            <comment id="41336" author="vishnoianil@gmail.com" created="Sun, 28 Feb 2016 05:58:41 +0000"  >&lt;p&gt;just a wild guess is that net-virt is using the overlapping flow names, so when it tries to install the flow for tenant 2, it generates the same flow name and end up modifying the existing flow rather then installing new flow.&lt;/p&gt;</comment>
                            <comment id="41337" author="oshvartz@redhat.com" created="Mon, 29 Feb 2016 14:59:54 +0000"  >&lt;p&gt;This issue related to the fact that before we creates ARP responder rules we validate that the rules are needed on the specific node and if not we delete it :&lt;/p&gt;

&lt;p&gt;DistributedArpService:&lt;/p&gt;

&lt;p&gt;// Arp rule is only needed when segmentation exists in the given node (&lt;a href=&quot;https://jira.opendaylight.org/browse/OVSDB-235&quot; title=&quot;distributed arp in old l3 for ovsdb should not install rules for arp unless tenant network exists in the compute node&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OVSDB-235&quot;&gt;&lt;del&gt;OVSDB-235&lt;/del&gt;&lt;/a&gt;).&lt;br/&gt;
boolean arpNeeded = tenantNetworkManager.isTenantNetworkPresentInNode(node, providerSegmentationId);&lt;br/&gt;
final Action actionForNode = arpNeeded ? actionToPerform : Action.DELETE; &lt;br/&gt;
...&lt;/p&gt;

&lt;p&gt;Once we will have the network on the node (first VM will be created) the ARP responder rules will be created (for the DHCP port and for the router interface).&lt;/p&gt;


&lt;p&gt;Now the question is if we want to fix it by not having the new rule as well ?&lt;/p&gt;</comment>
                            <comment id="41338" author="oshvartz@redhat.com" created="Tue, 1 Mar 2016 09:31:30 +0000"  >&lt;p&gt;(In reply to Oded Shvartz from comment #2)&lt;br/&gt;
&amp;gt; This issue related to the fact that before we creates ARP responder rules we&lt;br/&gt;
&amp;gt; validate that the rules are needed on the specific node and if not we delete&lt;br/&gt;
&amp;gt; it :&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; DistributedArpService:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; // Arp rule is only needed when segmentation exists in the given node (bug&lt;br/&gt;
&amp;gt; 4752).&lt;br/&gt;
&amp;gt; boolean arpNeeded = tenantNetworkManager.isTenantNetworkPresentInNode(node,&lt;br/&gt;
&amp;gt; providerSegmentationId);&lt;br/&gt;
&amp;gt; final Action actionForNode = arpNeeded ? actionToPerform : Action.DELETE; &lt;br/&gt;
&amp;gt; ...&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Once we will have the network on the node (first VM will be created) the ARP&lt;br/&gt;
&amp;gt; responder rules will be created (for the DHCP port and for the router&lt;br/&gt;
&amp;gt; interface).&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Now the question is if we want to fix it by not having the new rule as well ?&lt;/p&gt;


&lt;p&gt;So after more debugging I found why the new rule (after adding the second interface to the router) was not deleted like the first interface.&lt;/p&gt;

&lt;p&gt;After calling the distributedArpService.handlePortEvent (where we delete all the rules that are not needed to a specific node) we then calling the neutronL3Adapter.handleNeutronPortEvent and there we are not checking if the rule is needed, because we assume that ARP responder rules for router interface are needed always :&lt;/p&gt;

&lt;p&gt;// Enable ARP responder by default, because router interface needs to be responded always.&lt;br/&gt;
distributedArpService.programStaticRuleStage1(dpid, destinationSegmentationId, macAddress, ipStr, actionForNode);&lt;/p&gt;

&lt;p&gt;From functionality perspective I don&apos;t think we need it (I hope I&apos;m not missing something here), because once we will have the first VM for this network we will create it, but I think we should be more consistent and to decide if we want to create those rules or not in both places.&lt;/p&gt;</comment>
                            <comment id="41339" author="hariprasidh" created="Tue, 1 Mar 2016 13:51:44 +0000"  >&lt;p&gt;Hi Oded,&lt;/p&gt;

&lt;p&gt;Assume we have 2 networks(tenat1 and tenant2) and  2 Vm instances in control node, one instance in compute1 and one instance in compute2,&lt;br/&gt;
Control node Vms&lt;br/&gt;
VM1(10.0.0.3)&lt;br/&gt;
VM2(20.0.0.3)&lt;/p&gt;

&lt;p&gt;Compute1 node Vm&lt;br/&gt;
VM3(10.0.0.4)&lt;/p&gt;

&lt;p&gt;Compute2 node Vm&lt;br/&gt;
VM4(20.0.0.4)&lt;/p&gt;

&lt;p&gt;now, if we are trying to ping VM4(20.0.0.4) to VM1(10.0.0.3). If compute2 not having Arp flows for default gateway ip, then the Arp request will be broad casted to all nodes .&lt;/p&gt;

&lt;p&gt;So I think by default arp responder should be enable for router interface.&lt;/p&gt;</comment>
                            <comment id="41340" author="oshvartz@redhat.com" created="Wed, 2 Mar 2016 09:52:47 +0000"  >&lt;p&gt;(In reply to hari prasad from comment #4)&lt;br/&gt;
&amp;gt; Hi Oded,&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Assume we have 2 networks(tenat1 and tenant2) and  2 Vm instances in control&lt;br/&gt;
&amp;gt; node, one instance in compute1 and one instance in compute2,&lt;br/&gt;
&amp;gt; Control node Vms&lt;br/&gt;
&amp;gt; VM1(10.0.0.3)&lt;br/&gt;
&amp;gt; VM2(20.0.0.3)&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Compute1 node Vm&lt;br/&gt;
&amp;gt; VM3(10.0.0.4)&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Compute2 node Vm&lt;br/&gt;
&amp;gt; VM4(20.0.0.4)&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; now, if we are trying to ping VM4(20.0.0.4) to VM1(10.0.0.3). If compute2&lt;br/&gt;
&amp;gt; not having Arp flows for default gateway ip, then the Arp request will be&lt;br/&gt;
&amp;gt; broad casted to all nodes .&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; So I think by default arp responder should be enable for router interface.&lt;/p&gt;

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

&lt;p&gt;I think that when VM4(20.0.0.4) will try to ping VM1(10.0.0.3) it will send ARP request to find the default gateway on network 20.0.0.0 and we will have the arp responder rule for it, because it will be added once you created the VM (VM4).&lt;/p&gt;

&lt;p&gt;VM4 will send the packet to the default gateway (OVS) and OVS will do the routing without sending ARP request. You can look on table 70 which will add the relevant mac for the requested IP (10.0.0.4 in your case).&lt;/p&gt;

&lt;p&gt;Please let me know what do you think.&lt;/p&gt;</comment>
                            <comment id="41341" author="shague@redhat.com" created="Mon, 21 Mar 2016 21:48:08 +0000"  >&lt;p&gt;be: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/36268/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/36268/1&lt;/a&gt;&lt;br/&gt;
master: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/36231/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/36231/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="12869" name="karaf_logs.zip" size="204714" author="hari.pr@hcl.com" created="Fri, 26 Feb 2016 10:57:53 +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>5435</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=5435]]></customfieldvalue>

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

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