Hi,

Thank you for reporting.
Could you kindly send a pcap file of the bgp messages?
Then I will check why bgp parser can’t work well.

Thanks,

On Jul 30, 2014, at 13:31, Toshiki Tsuboi <t.tsubo2...@gmail.com> wrote:

> Hi 
> 
> It looks Ryu BGP can not parse mpBGP Update Message .
> In spite of  receiving mpBGP Update Message, Ryu BGP has parsed it as regular 
> BGP Update Message in case of the sample code as follows .
> 
> ( Caution : Total path attribute length including MP_REACH_NLRI )
> 
> Best Regards .
> Toshiki Tsuboi
> 
> 
> 
> — result of sample code ---
> 
> tsubo@RyuBGP:~/ryu/ryu/services/protocols/bgp/sampleApp$ sudo 
> ./start_RyuBGPSpeaker.sh 
> INFO 2014-07-30 12:50:24,023 base 207 API method core.start called with args: 
> {'router_id': '10.10.0.2', 'label_range': (100, 100000), 'waiter': 
> <ryu.lib.hub.Event object at 0x7f7d52aade90>, 'local_as': 64512, 
> 'bgp_server_port': 179, 'refresh_max_eor_time': 0, 'refresh_stalepath_time': 
> 0}
> DEBUG 2014-07-30 12:50:24,037 processor 89 Starting new processing run...
> DEBUG 2014-07-30 12:50:24,038 processor 118 Processing RT NLRI destination...
> DEBUG 2014-07-30 12:50:24,039 processor 108 Processing destination...
> DEBUG 2014-07-30 12:50:24,040 application 171 Core started True
> INFO 2014-07-30 12:50:24,040 base 207 API method neighbor.create called with 
> args: {'remote_as': 64511, 'cap_refresh': True, 'cap_mbgp_vpnv6': True, 
> 'hold_time': 180, 'cap_mbgp_vpnv4': True, 'cap_enhanced_refresh': True, 
> 'ip_address': '192.168.100.100'}
> DEBUG 2014-07-30 12:50:24,041 application 194 Added neighbor 192.168.100.100
> DEBUG 2014-07-30 12:50:24,042 application 99 Started Network Controller
> DEBUG 2014-07-30 12:50:24,043 peer 559 Started peer Peer(ip: 192.168.100.100, 
> asn: 64511)
> DEBUG 2014-07-30 12:50:24,043 net_ctrl 337 NetworkController started 
> listening for connections...
> DEBUG 2014-07-30 12:50:25,045 peer 209 Peer 192.168.100.100 BGP FSM went from 
> Idle to Connect
> DEBUG 2014-07-30 12:50:25,046 peer 952 Peer(ip: 192.168.100.100, asn: 64511) 
> trying to connect to ('192.168.100.100', 179)
> DEBUG 2014-07-30 12:50:25,046 base 398 Connect TCP called for 
> 192.168.100.100:179
> DEBUG 2014-07-30 12:50:25,070 speaker 401 Sent msg to ('192.168.100.100', 
> '179') >> 
> BGPOpen(bgp_identifier='10.10.0.2',hold_time=180,len=61,my_as=64512,opt_param=[BGPOptParamCapabilityMultiprotocol(afi=1,cap_code=1,cap_length=4,length=6,reserved=0,safi=1,type=2),
>  
> BGPOptParamCapabilityMultiprotocol(afi=1,cap_code=1,cap_length=4,length=6,reserved=0,safi=128,type=2),
>  
> BGPOptParamCapabilityMultiprotocol(afi=2,cap_code=1,cap_length=4,length=6,reserved=0,safi=128,type=2),
>  BGPOptParamCapabilityRouteRefresh(cap_code=2,cap_length=0,length=2,type=2), 
> BGPOptParamCapabilityEnhancedRouteRefresh(cap_code=70,cap_length=0,length=2,type=2)],opt_param_len=32,type=1,version=4)
> INFO 2014-07-30 12:50:25,071 peer 1859 Connection to peer: 192.168.100.100 
> established
> DEBUG 2014-07-30 12:50:25,083 speaker 447 Received msg from 
> ('192.168.100.100', '179') << 
> BGPOpen(bgp_identifier='10.0.0.1',hold_time=180,len=53,my_as=64511,opt_param=[BGPOptParamCapabilityMultiprotocol(afi=1,cap_code=1,cap_length=4,length=6,reserved=0,safi=1,type=2),
>  
> BGPOptParamCapabilityMultiprotocol(afi=1,cap_code=1,cap_length=4,length=6,reserved=0,safi=128,type=2),
>  
> BGPOptParamCapabilityUnknown(cap_code=128,cap_length=0,cap_value='',length=2,type=2),
>  
> BGPOptParamCapabilityRouteRefresh(cap_code=2,cap_length=0,length=2,type=2)],opt_param_len=24,type=1,version=4)
> DEBUG 2014-07-30 12:50:25,085 peer 209 Peer 192.168.100.100 BGP FSM went from 
> Connect to OpenConfirm
> DEBUG 2014-07-30 12:50:25,086 peer 1005 Trying to bind protocol 
> <ryu.services.protocols.bgp.speaker.BgpProtocol object at 0x7f7d529be2d0> to 
> peer Peer(ip: 192.168.100.100, asn: 64511)
> DEBUG 2014-07-30 12:50:25,086 peer 983 Connect retry event for Peer(ip: 
> 192.168.100.100, asn: 64511) is cleared
> DEBUG 2014-07-30 12:50:25,087 speaker 532 Started keep-alive and expire timer 
> for negotiated holdtime 180
> DEBUG 2014-07-30 12:50:25,088 speaker 401 Sent msg to ('192.168.100.100', 
> '179') >> BGPKeepAlive(len=19,type=4)
> DEBUG 2014-07-30 12:50:25,089 speaker 447 Received msg from 
> ('192.168.100.100', '179') << BGPKeepAlive(len=19,type=4)
> DEBUG 2014-07-30 12:50:25,089 peer 209 Peer 192.168.100.100 BGP FSM went from 
> OpenConfirm to Established
> DEBUG 2014-07-30 12:50:25,090 peer 1727 Communicating current best path for 
> all afi/safi except 1/132
> DEBUG 2014-07-30 12:50:25,114 speaker 447 Received msg from 
> ('192.168.100.100', '179') << BGPKeepAlive(len=19,type=4)
> DEBUG 2014-07-30 12:50:25,116 speaker 447 Received msg from 
> ('192.168.100.100', '179') << BGPKeepAlive(len=19,type=4)
> DEBUG 2014-07-30 12:50:25,126 speaker 566 Traceback (most recent call last):
>   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py",
>  line 560, in _recv_loop
>     self.data_received(next_bytes)
>   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py",
>  line 275, in data_received
>     self._data_received(next_bytes)
>   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py",
>  line 351, in _data_received
>     msg, rest = BGPMessage.parser(self._recv_buff)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/packet/bgp.py", line 
> 1937, in parser
>     kwargs = subcls.parser(binmsg)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/packet/bgp.py", line 
> 2120, in parser
>     pa, binpathattrs = _PathAttribute.parser(binpathattrs)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/packet/bgp.py", line 
> 1276, in parser
>     **subcls.parse_value(value)), rest
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/packet/bgp.py", line 
> 1812, in parse_value
>     next_hop = addrconv.ipv4.bin_to_text(next_hop_bin)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/addrconv.py", line 30, 
> in bin_to_text
>     return str(self._addr(self._strat.packed_to_int(bin),
>   File "/usr/local/lib/python2.7/dist-packages/netaddr/strategy/ipv4.py", 
> line 196, in packed_to_int
>     return _struct.unpack('>I', packed_int)[0]
> error: unpack requires a string argument of length 4
> 
> INFO 2014-07-30 12:50:25,128 peer 1873 Connection to peer 192.168.100.100 
> lost, reason: unpack requires a string argument of length 4 Resetting retry 
> connect loop: False
> DEBUG 2014-07-30 12:50:25,128 peer 209 Peer 192.168.100.100 BGP FSM went from 
> Established to Idle
> DEBUG 2014-07-30 12:50:25,128 base 305 Stopping activity BgpProtocol True, 
> ('192.168.100.100', '179'), ('192.168.100.102', '46632').
> DEBUG 2014-07-30 12:50:25,129 base 291 BgpProtocol True, ('192.168.100.100', 
> '179'), ('192.168.100.102', '46632'): Stopping timer Holdtime Timer
> DEBUG 2014-07-30 12:50:25,129 base 291 BgpProtocol True, ('192.168.100.100', 
> '179'), ('192.168.100.102', '46632'): Stopping timer Keepalive Timer
> DEBUG 2014-07-30 12:50:25,129 base 285 BgpProtocol True, ('192.168.100.100', 
> '179'), ('192.168.100.102', '46632'): Closing socket passive_conn - 
> <eventlet.greenio.GreenSocket object at 0x7f7d529bea10>
> DEBUG 2014-07-30 12:50:25,130 base 317 Stopping activity BgpProtocol True, 
> ('192.168.100.100', '179'), ('192.168.100.102', '46632') finished.
> DEBUG 2014-07-30 12:50:25,130 peer 1700 Un-scheduling sending of initial 
> Non-RTC UPDATEs (init. UPDATEs already sent: False)
> DEBUG 2014-07-30 12:50:25,130 peer_manager 65 Cleaning obsolete paths whose 
> source/version: 192.168.100.100/2
> INFO 2014-07-30 12:50:25,130 speaker 599 unpack requires a string argument of 
> length 4
> 
> 
> 
> <wireshark_mpBGP_Update_message.png>
> 
> ------------------------------------------------------------------------------
> Infragistics Professional
> Build stunning WinForms apps today!
> Reboot your WinForms applications with our WinForms controls. 
> Build a bridge from your legacy apps to the future.
> http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk_______________________________________________
> Ryu-devel mailing list
> Ryu-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ryu-devel


------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to