<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:14:09 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>[BGPCEP-800] l3vpn-multicast bit length missing from update message</title>
                <link>https://jira.opendaylight.org/browse/BGPCEP-800</link>
                <project id="10108" key="BGPCEP">bgpcep</project>
                    <description>&lt;p&gt;Overview: We add route into application peer, then we connect peer. And check for update message on wireshark from odl.&lt;br/&gt;
 NLRI part of packet looks like this:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
 20 00 01 ac 10 00 2c 00 65 0a 02 22 00 18 00 00 00
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Where first number represents length 32 but there are 16 bytes after it.&lt;br/&gt;
So each number in length represents 4 bits?&lt;/p&gt;

&lt;p&gt; Then route-distinguisher 172.16.0.44:101 than prefix 10.2.34.0/24&lt;/p&gt;

&lt;p&gt;Steps for sending this route from Play.py to ODL&lt;/p&gt;

&lt;p&gt;Steps to reproduce:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;configure app peer and internal peer
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
./configure.py
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;start play.py
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
sudo ./start_play.sh
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;send hex message to odl
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
./hex_send.py
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;(note: this specific play.py is necessary so it advertizes mcast-l3vpn)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt; at this point odl send update message to play.py&lt;/p&gt;

&lt;p&gt;When I try to send this route to odl from play.py I get this error:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
2018-06-18T13:19:26,914 | ERROR | epollEventLoopGroup-5-2 | BGPDocumentedException           | 218 - org.opendaylight.bgpcep.bgp-parser-api - 0.10.0.SNAPSHOT | Error = MALFORMED_ATTR_LIST
org.opendaylight.protocol.bgp.parser.BGPDocumentedException: Could not parse BGP attributes.
	at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:155) [219:org.opendaylight.bgpcep.bgp-parser-impl:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:53) [219:org.opendaylight.bgpcep.bgp-parser-impl:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry.parseBody(SimpleMessageRegistry.java:31) [220:org.opendaylight.bgpcep.bgp-parser-spi:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry.parseMessage(AbstractMessageRegistry.java:63) [220:org.opendaylight.bgpcep.bgp-parser-spi:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.rib.impl.BGPByteToMessageDecoder.decode(BGPByteToMessageDecoder.java:50) [224:org.opendaylight.bgpcep.bgp-rib-impl:0.10.0.SNAPSHOT]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) [94:io.netty.codec:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) [94:io.netty.codec:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) [94:io.netty.codec:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [99:io.netty.transport:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [94:io.netty.codec:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [94:io.netty.codec:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945) [99:io.netty.transport:4.1.22.Final]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:806) [100:io.netty.transport-&lt;span class=&quot;code-keyword&quot;&gt;native&lt;/span&gt;-epoll:4.1.22.Final]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) [100:io.netty.transport-&lt;span class=&quot;code-keyword&quot;&gt;native&lt;/span&gt;-epoll:4.1.22.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) [100:io.netty.transport-&lt;span class=&quot;code-keyword&quot;&gt;native&lt;/span&gt;-epoll:4.1.22.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [96:io.netty.common:4.1.22.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [96:io.netty.common:4.1.22.Final]
	at java.lang.&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.run(&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.java:748) [?:?]
Caused by: java.lang.IllegalStateException: Cannot read Route Distinguisher from provided buffer.
	at com.google.common.base.Preconditions.checkState(Preconditions.java:504) ~[?:?]
	at org.opendaylight.bgp.concepts.RouteDistinguisherUtil.parseRouteDistinguisher(RouteDistinguisherUtil.java:77) ~[?:?]
	at org.opendaylight.protocol.bgp.l3vpn.mcast.nlri.L3vpnMcastNlriSerializer.extractDest(L3vpnMcastNlriSerializer.java:38) ~[?:?]
	at org.opendaylight.protocol.bgp.l3vpn.mcast.nlri.L3vpnMcastIpv4NlriHandler.parseNlri(L3vpnMcastIpv4NlriHandler.java:52) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleNlriRegistry.parseMpReach(SimpleNlriRegistry.java:228) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.impl.message.update.MPReachAttributeParser.parseAttribute(MPReachAttributeParser.java:44) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAttributeRegistry.parseAttributes(SimpleAttributeRegistry.java:136) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:151) ~[?:?]
	... 25 more
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="30125">BGPCEP-800</key>
            <summary>l3vpn-multicast bit length missing from update message</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="10004" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Verified</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="cdgasparini">Claudio David Gasparini</assignee>
                                    <reporter username="tomas.markovic">Tomas Markovic</reporter>
                        <labels>
                    </labels>
                <created>Mon, 11 Jun 2018 14:15:32 +0000</created>
                <updated>Thu, 21 Jun 2018 17:45:26 +0000</updated>
                            <resolved>Thu, 21 Jun 2018 17:42:10 +0000</resolved>
                                    <version>Fluorine</version>
                                    <fixVersion>Fluorine</fixVersion>
                                    <component>BGP</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="63467" author="tomas.markovic" created="Mon, 18 Jun 2018 08:45:50 +0000"  >&lt;p&gt;Ext community works now.&lt;/p&gt;

&lt;p&gt;Length is present but it is 20, and that doesn&apos;t correspond with real length neither in bits not bytes.  20 00 01 ac 10 00 2c 00 65 0a 02 22 00 18 00 00 00&lt;/p&gt;

&lt;p&gt;As I understand it from rfc, the length here should be 60 00 01 ac 10 00 2c 00 65 0a 02 22 00 18 since 12*8=96&lt;br/&gt;
Maybe it takes only the length of the ip?&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="14699" name="configure.py" size="1567" author="tomas.markovic" created="Mon, 18 Jun 2018 14:30:12 +0000"/>
                            <attachment id="14700" name="hex_send.py" size="434" author="tomas.markovic" created="Mon, 18 Jun 2018 14:31:29 +0000"/>
                            <attachment id="14683" name="play.py" size="89176" author="tomas.markovic" created="Mon, 11 Jun 2018 14:05:58 +0000"/>
                            <attachment id="14701" name="start_play.sh" size="132" author="tomas.markovic" created="Mon, 18 Jun 2018 14:31:29 +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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03fjb:</customfieldvalue>

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