Hi

I’ve tested in latest master branch .
But, it looks this issue has occurred again .

regards
Toshiki Tsuboi


—---- test result as following ---------

(1) starting My sampleApp ( changes log level from info to debug )

$ sudo ./start_RyuBGPSpeaker.sh 

...(snip)

DEBUG 2014-07-29 12:18:02,525 speaker 447 Received msg from ('192.168.100.100', 
'179') << BGPKeepAlive(len=19,type=4)
DEBUG 2014-07-29 12:18:02,526 speaker 447 Received msg from ('192.168.100.100', 
'179') << BGPKeepAlive(len=19,type=4)
DEBUG 2014-07-29 12:18:15,495 speaker 401 Sent msg to ('192.168.100.100', 
'179') >> BGPKeepAlive(len=19,type=4)
DEBUG 2014-07-29 12:18:16,474 speaker 447 Received msg from ('192.168.100.100', 
'179') << BGPKeepAlive(len=19,type=4)
DEBUG 2014-07-29 12:18:28,507 speaker 401 Sent msg to ('192.168.100.100', 
'179') >> BGPKeepAlive(len=19,type=4)
DEBUG 2014-07-29 12:18:29,475 speaker 447 Received msg from ('192.168.100.100', 
'179') << BGPKeepAlive(len=19,type=4)
DEBUG 2014-07-29 12:18:32,441 base 345 Connect request received from client for 
port 127.0.0.1:35865
CRITICAL 2014-07-29 12:18:32,444 net_ctrl 121 RPC Session to ('127.0.0.1', 
35865) started
DEBUG 2014-07-29 12:18:32,445 net_ctrl 199 NetworkController processing 
outgoing request list.
DEBUG 2014-07-29 12:18:32,445 net_ctrl 166 NetworkController started processing 
incoming messages
DEBUG 2014-07-29 12:18:38,527 net_ctrl 373 Request from NetworkController<<: 
core.reset_neighbor [{'ip_address': '192.168.100.100'}]
INFO 2014-07-29 12:18:38,527 base 207 API method core.reset_neighbor called 
with args: {'ip_address': '192.168.100.100'}
INFO 2014-07-29 12:18:38,527 peer 459 Peer(ip: 192.168.100.100, asn: 64511) 
disabled
DEBUG 2014-07-29 12:18:38,527 base 11 SIGNAL: ('error', 'bgp', 
<ryu.services.protocols.bgp.peer.Peer object at 0x7ff6fca70f50>) emited with 
data: {'peer': <ryu.services.protocols.bgp.peer.Peer object at 0x7ff6fca70f50>, 
'subcode': 2, 'code': 6, 'reason': 'Cease: Administrative Shutdown'} 
ERROR 2014-07-29 12:18:38,528 speaker 376 Sent notification to 
('192.168.100.102', '52938') >> 
BGPNotification(data='',error_code=6,error_subcode=2,len=21,type=3)
DEBUG 2014-07-29 12:18:38,528 base 305 Stopping activity BgpProtocol True, 
('192.168.100.100', '179'), ('192.168.100.102', '52938').
DEBUG 2014-07-29 12:18:38,528 base 291 BgpProtocol True, ('192.168.100.100', 
'179'), ('192.168.100.102', '52938'): Stopping timer Holdtime Timer
DEBUG 2014-07-29 12:18:38,528 base 291 BgpProtocol True, ('192.168.100.100', 
'179'), ('192.168.100.102', '52938'): Stopping timer Keepalive Timer
DEBUG 2014-07-29 12:18:38,528 base 285 BgpProtocol True, ('192.168.100.100', 
'179'), ('192.168.100.102', '52938'): Closing socket passive_conn - 
<eventlet.greenio.GreenSocket object at 0x7ff6fca8ed50>
DEBUG 2014-07-29 12:18:38,528 base 317 Stopping activity BgpProtocol True, 
('192.168.100.100', '179'), ('192.168.100.102', '52938') finished.
DEBUG 2014-07-29 12:18:38,529 peer 209 Peer 192.168.100.100 BGP FSM went from 
Established to Idle
DEBUG 2014-07-29 12:18:38,529 peer 475 Disabling connect-retry as neighbor was 
disabled
DEBUG 2014-07-29 12:18:39,453 base 345 Connect request received from client for 
port 127.0.0.1:35866
DEBUG 2014-07-29 12:18:39,454 base 305 Stopping activity UnknownActivity: 
1406603912.44.
DEBUG 2014-07-29 12:18:39,454 base 276 UnknownActivity: 1406603912.44: Stopping 
child thread net_ctrl._process_outgoing
DEBUG 2014-07-29 12:18:39,455 base 276 UnknownActivity: 1406603912.44: Stopping 
child thread net_ctrl._process_incoming
DEBUG 2014-07-29 12:18:39,455 base 317 Stopping activity UnknownActivity: 
1406603912.44 finished.
CRITICAL 2014-07-29 12:18:39,456 net_ctrl 109 RPC Session to ('127.0.0.1', 
35865) stopped
CRITICAL 2014-07-29 12:18:39,456 net_ctrl 121 RPC Session to ('127.0.0.1', 
35866) started
DEBUG 2014-07-29 12:18:39,457 net_ctrl 199 NetworkController processing 
outgoing request list.
DEBUG 2014-07-29 12:18:39,457 net_ctrl 166 NetworkController started processing 
incoming messages
DEBUG 2014-07-29 12:18:39,457 net_ctrl 373 Request from NetworkController<<: 
core.reset_neighbor [{'ip_address': '192.168.100.100'}]
INFO 2014-07-29 12:18:39,458 base 207 API method core.reset_neighbor called 
with args: {'ip_address': '192.168.100.100'}
ERROR 2014-07-29 12:18:39,461 base 222 Traceback (most recent call last):
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/base.py",
 line 220, in call
    return call(**kwargs)
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/core.py",
 line 78, in reset_neighor
    ' reset.' % ip_address)
RuntimeConfigError: 200.1 - Neighbor 192.168.100.100 is not enabled, hence 
cannot reset.

ERROR 2014-07-29 12:18:39,467 hub 60 hub: uncaught exception: Traceback (most 
recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line 52, in 
_launch
    func(*args, **kwargs)
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/net_ctrl.py",
 line 171, in _process_incoming_msgs
    msg_buff = self._recv()
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/net_ctrl.py",
 line 222, in _recv
    return self._sock_wrap(self._socket.recv)(RPC_SOCK_BUFF_SIZE)
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/net_ctrl.py",
 line 230, in wrapper
    ret = func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/eventlet/greenio.py", line 264, 
in recv
    timeout_exc=socket.timeout("timed out"))
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/__init__.py", line 
151, in trampoline
    listener = hub.add(hub.READ, fileno, current.switch)
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/epolls.py", line 
48, in add
    listener = BaseHub.add(self, evtype, fileno, cb)
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 126, 
in add
    evtype, fileno, evtype))
RuntimeError: Second simultaneous read on fileno 11 detected.  Unless you 
really know what you're doing, make sure that only one greenthread can read any 
particular socket.  Consider using a pools.Pool. If you do know what you're 
doing and want to disable this error, call 
eventlet.debug.hub_prevent_multiple_readers(False)


(2) neighbor reset through RPC in Ryu-cli

$ ./rpc_cli.py --peers=bgps=localhost:50002
(Cmd) request bgps core.reset_neighbor [{'ip_address': '192.168.100.100'}]
NOTIFICATION from bgps ['neighbor.state', {'state': 'Idle', 'ip_address': 
'192.168.100.100'}]
NOTIFICATION from bgps ['neighbor.down', {'ip_address': '192.168.100.100'}]
disconnected.  trying to connect...
connected.  retrying the request...
RPC ERROR 200.1 - Neighbor 192.168.100.100 is not enabled, hence cannot reset.



2014/07/29 11:32、ISHIDA Wataru <ishida.wat...@lab.ntt.co.jp> のメール:

> Hi,
> 
> Thanks for the report.
> I sent the patch to fix reset neighbor and already merged.
> Please try it out.
> 
> thanks
> 
> (2014/07/27 17:31), Toshiki Tsuboi wrote:
>> Hi
>> 
>> I’ve tested  again after adapting the following patch code .
>> But, this issue has not resolved now .
>> -> I’m not sure why RPC has disconnected between Ryu-cli and 
>> NetworkController(net_ctrl) ,after receiving reset_neighbor .
>> 
>> diff --git a/ryu/services/protocols/bgp/speaker.py 
>> b/ryu/services/protocols/bgp/speaker.py
>> index 2c823f5..cfa8be7 100644
>> --- a/ryu/services/protocols/bgp/speaker.py
>> +++ b/ryu/services/protocols/bgp/speaker.py
>> @@ -371,8 +371,8 @@ class BgpProtocol(Protocol, Activity):
>>          reason = notification.reason
>>          self._send_with_lock(notification)
>>          self._signal_bus.bgp_error(self._peer, code, subcode, reason)
>> -        if len(self._localname()):
>> -            LOG.error('Sent notification to %r >> %s' % (self._localname(),
>> +        if len(self._localname):
>> +            LOG.error('Sent notification to %r >> %s' % (self._localname,
>>                                                           notification))
>>          self._socket.close()
>> 
>> 
>> I hope this report is useful for resolving the issue .
>> Best regards.
>> 
>> Toshiki Tsuboi
>> 
>> 
>> —---- test result as following ---------
>> 
>> (1) starting My sampleApp ( changes log level from info to debug )
>> 
>> $ sudo ./start_RyuBGPSpeaker.sh
>> 
>> …(snip)
>> 
>> DEBUG 2014-07-27 17:04:10,345 speaker 447 Received msg from 
>> ('192.168.100.100', '179') << 
>> BGPKeepAlive(len=19,marker='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff',type=4)
>> DEBUG 2014-07-27 17:04:10,346 speaker 447 Received msg from 
>> ('192.168.100.100', '179') << 
>> BGPKeepAlive(len=19,marker='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff',type=4)
>> DEBUG 2014-07-27 17:04:19,174 base 345 Connect request received from client 
>> for port 127.0.0.1:42502
>> CRITICAL 2014-07-27 17:04:19,185 net_ctrl 121 RPC Session to ('127.0.0.1', 
>> 42502) started
>> DEBUG 2014-07-27 17:04:19,185 net_ctrl 199 NetworkController processing 
>> outgoing request list.
>> DEBUG 2014-07-27 17:04:19,186 net_ctrl 166 NetworkController started 
>> processing incoming messages
>> DEBUG 2014-07-27 17:04:19,186 net_ctrl 373 Request from NetworkController<<: 
>> core.reset_neighbor [{'ip_address': '192.168.100.100'}]
>> INFO 2014-07-27 17:04:19,187 base 207 API method core.reset_neighbor called 
>> with args: {'ip_address': '192.168.100.100'}
>> DEBUG 2014-07-27 17:04:19,187 peer 415 Peer Peer(ip: 192.168.100.100, asn: 
>> 64511) configuration update event, enabled: False.
>> DEBUG 2014-07-27 17:04:19,188 base 11 SIGNAL: ('error', 'bgp', 
>> <ryu.services.protocols.bgp.peer.Peer object at 0x7fc120a6c750>) emited with 
>> data: {'peer': <ryu.services.protocols.bgp.peer.Peer object at 
>> 0x7fc120a6c750>, 'subcode': 2, 'code': 6, 'reason': 'Cease: Administrative 
>> Shutdown'}
>> ERROR 2014-07-27 17:04:19,188 speaker 376 Sent notification to 
>> ('192.168.100.102', '59501') >> 
>> BGPNotification(data='',error_code=6,error_subcode=2,len=21,marker='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff',type=3)
>> DEBUG 2014-07-27 17:04:19,189 base 305 Stopping activity BgpProtocol True, 
>> ('192.168.100.100', '179'), ('192.168.100.102', '59501').
>> DEBUG 2014-07-27 17:04:19,189 base 291 BgpProtocol True, ('192.168.100.100', 
>> '179'), ('192.168.100.102', '59501'): Stopping timer Holdtime Timer
>> DEBUG 2014-07-27 17:04:19,189 base 291 BgpProtocol True, ('192.168.100.100', 
>> '179'), ('192.168.100.102', '59501'): Stopping timer Keepalive Timer
>> DEBUG 2014-07-27 17:04:19,190 base 285 BgpProtocol True, ('192.168.100.100', 
>> '179'), ('192.168.100.102', '59501'): Closing socket passive_conn - 
>> <eventlet.greenio.GreenSocket object at 0x7fc120a8a550>
>> DEBUG 2014-07-27 17:04:19,190 base 317 Stopping activity BgpProtocol True, 
>> ('192.168.100.100', '179'), ('192.168.100.102', '59501') finished.
>> DEBUG 2014-07-27 17:04:19,191 peer 439 Disabling connect-retry as neighbor 
>> was disabled (True)
>> DEBUG 2014-07-27 17:04:19,774 base 345 Connect request received from client 
>> for port 127.0.0.1:42503
>> DEBUG 2014-07-27 17:04:19,775 base 305 Stopping activity UnknownActivity: 
>> 1406448259.17.
>> DEBUG 2014-07-27 17:04:19,776 base 276 UnknownActivity: 1406448259.17: 
>> Stopping child thread net_ctrl._process_outgoing
>> DEBUG 2014-07-27 17:04:19,776 base 276 UnknownActivity: 1406448259.17: 
>> Stopping child thread net_ctrl._process_incoming
>> DEBUG 2014-07-27 17:04:19,776 base 317 Stopping activity UnknownActivity: 
>> 1406448259.17 finished.
>> CRITICAL 2014-07-27 17:04:19,777 net_ctrl 109 RPC Session to ('127.0.0.1', 
>> 42502) stopped
>> CRITICAL 2014-07-27 17:04:19,777 net_ctrl 121 RPC Session to ('127.0.0.1', 
>> 42503) started
>> DEBUG 2014-07-27 17:04:19,778 net_ctrl 199 NetworkController processing 
>> outgoing request list.
>> DEBUG 2014-07-27 17:04:19,779 net_ctrl 166 NetworkController started 
>> processing incoming messages
>> DEBUG 2014-07-27 17:04:19,779 net_ctrl 373 Request from NetworkController<<: 
>> core.reset_neighbor [{'ip_address': '192.168.100.100'}]
>> INFO 2014-07-27 17:04:19,780 base 207 API method core.reset_neighbor called 
>> with args: {'ip_address': '192.168.100.100'}
>> ERROR 2014-07-27 17:04:19,783 base 222 Traceback (most recent call last):
>>   File 
>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/base.py",
>>  line 220, in call
>>     return call(**kwargs)
>>   File 
>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/core.py",
>>  line 79, in reset_neighor
>>     ' reset.' % ip_address)
>> RuntimeConfigError: 200.1 - Neighbor 192.168.100.100 is not enabled, hence 
>> cannot reset.
>> 
>> ERROR 2014-07-27 17:04:19,790 hub 60 hub: uncaught exception: Traceback 
>> (most recent call last):
>>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line 52, in 
>> _launch
>>     func(*args, **kwargs)
>>   File 
>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/net_ctrl.py",
>>  line 171, in _process_incoming_msgs
>>     msg_buff = self._recv()
>>   File 
>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/net_ctrl.py",
>>  line 222, in _recv
>>     return self._sock_wrap(self._socket.recv)(RPC_SOCK_BUFF_SIZE)
>>   File 
>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/net_ctrl.py",
>>  line 230, in wrapper
>>     ret = func(*args, **kwargs)
>>   File "/usr/local/lib/python2.7/dist-packages/eventlet/greenio.py", line 
>> 264, in recv
>>     timeout_exc=socket.timeout("timed out"))
>>   File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/__init__.py", 
>> line 151, in trampoline
>>     listener = hub.add(hub.READ, fileno, current.switch)
>>   File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/epolls.py", 
>> line 48, in add
>>     listener = BaseHub.add(self, evtype, fileno, cb)
>>   File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 
>> 126, in add
>>     evtype, fileno, evtype))
>> RuntimeError: Second simultaneous read on fileno 11 detected.  Unless you 
>> really know what you're doing, make sure that only one greenthread can read 
>> any particular socket.  Consider using a pools.Pool. If you do know what 
>> you're doing and want to disable this error, call 
>> eventlet.debug.hub_prevent_multiple_readers(False)
>> 
>> DEBUG 2014-07-27 17:05:05,569 base 345 Connect request received from client 
>> for port 192.168.100.100:31791
>> DEBUG 2014-07-27 17:05:05,570 core 435 Closed connection to 
>> 192.168.100.100:31791 as it is not a recognized peer.
>> DEBUG 2014-07-27 17:05:05,570 base 11 SIGNAL: ('error', 'bgp', None) emited 
>> with data: {'peer': None, 'subcode': 5, 'code': 6, 'reason': 'Cease: 
>> Connection Rejected'}
>> ERROR 2014-07-27 17:05:05,570 speaker 376 Sent notification to 
>> ('192.168.100.102', '179') >> 
>> BGPNotification(data='',error_code=6,error_subcode=5,len=21,marker='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff',type=3)
>> DEBUG 2014-07-27 17:05:45,523 base 345 Connect request received from client 
>> for port 192.168.100.100:16040
>> DEBUG 2014-07-27 17:05:45,524 core 435 Closed connection to 
>> 192.168.100.100:16040 as it is not a recognized peer.
>> DEBUG 2014-07-27 17:05:45,524 base 11 SIGNAL: ('error', 'bgp', None) emited 
>> with data: {'peer': None, 'subcode': 5, 'code': 6, 'reason': 'Cease: 
>> Connection Rejected'}
>> ERROR 2014-07-27 17:05:45,524 speaker 376 Sent notification to 
>> ('192.168.100.102', '179') >> 
>> BGPNotification(data='',error_code=6,error_subcode=5,len=21,marker='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff',type=3)
>> DEBUG 2014-07-27 17:06:21,000 base 345 Connect request received from client 
>> for port 192.168.100.100:33990
>> DEBUG 2014-07-27 17:06:21,001 core 435 Closed connection to 
>> 192.168.100.100:33990 as it is not a recognized peer.
>> DEBUG 2014-07-27 17:06:21,001 base 11 SIGNAL: ('error', 'bgp', None) emited 
>> with data: {'peer': None, 'subcode': 5, 'code': 6, 'reason': 'Cease: 
>> Connection Rejected'}
>> ERROR 2014-07-27 17:06:21,001 speaker 376 Sent notification to 
>> ('192.168.100.102', '179') >> 
>> BGPNotification(data='',error_code=6,error_subcode=5,len=21,marker='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff',type=3)
>> DEBUG 2014-07-27 17:07:06,263 base 345 Connect request received from client 
>> for port 192.168.100.100:11862
>> DEBUG 2014-07-27 17:07:06,263 core 435 Closed connection to 
>> 192.168.100.100:11862 as it is not a recognized peer.
>> DEBUG 2014-07-27 17:07:06,264 base 11 SIGNAL: ('error', 'bgp', None) emited 
>> with data: {'peer': None, 'subcode': 5, 'code': 6, 'reason': 'Cease: 
>> Connection Rejected'}
>> ERROR 2014-07-27 17:07:06,264 speaker 376 Sent notification to 
>> ('192.168.100.102', '179') >> 
>> BGPNotification(data='',error_code=6,error_subcode=5,len=21,marker='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff',type=3)
>> 
>> 
>> (2) neighbor reset through RPC in Ryu-cli
>> 
>> $ ./rpc_cli.py --peers=bgps=localhost:50002
>> (Cmd) request bgps core.reset_neighbor [{'ip_address': '192.168.100.100'}]
>> disconnected.  trying to connect...
>> connected.  retrying the request...
>> RPC ERROR 200.1 - Neighbor 192.168.100.100 is not enabled, hence cannot 
>> reset.
>> (Cmd)
>> 
>> 
>> 
>> 
>> 2014/07/27 10:10、Toshiki Tsuboi <t.tsubo2...@gmail.com 
>> <mailto:t.tsubo2...@gmail.com>> のメール:
>> 
>>> Hi Fujita-san
>>> 
>>> I have tested reset_neighbor after adapting patch/ code ./
>>> /It looks to me the previous issue/ has r/esolved . /
>>> / -> BGP peering down properly , because Ryu-BGP sends Notification 
>>> Message”//administrative //shutdown”  ,/
>>> 
>>> But, after that, /BGP peering has kept ‘Down ‘,/
>>> / -> Please check the attach //“/wireshark_keep_peer_down"
>>> 
>>> Best regards
>>> Toshiki Tsuboi
>>> 
>>> 
>>> —---- test result as following ---------
>>> 
>>> (1) starting My sampleApp
>>> 
>>> $ sudo ./start_RyuBGPSpeaker.sh
>>> INFO 2014-07-20 20:31:29,814 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 0x7fe42269ca90>, 'local_as': 64512, 
>>> 'bgp_server_port': 179, 'refresh_max_eor_time': 0, 
>>> 'refresh_stalepath_time': 0}
>>> INFO 2014-07-20 20:31:29,868 base 207 API method neighbor.create called 
>>> with args: {'remote_as': 64511, 'ip_address': '192.168.100.100'}
>>> INFO 2014-07-20 20:31:29,869 base 207 API method network.add called with 
>>> args: {'prefix': '10.20.0.0/24'}
>>> INFO 2014-07-20 20:31:29,870 base 207 API method network.add called with 
>>> args: {'prefix': '10.30.0.0/24'}
>>> INFO 2014-07-20 20:31:29,871 base 207 API method network.add called with 
>>> args: {'prefix': '10.40.0.0/16'}
>>> INFO 2014-07-20 20:31:29,872 base 207 API method network.add called with 
>>> args: {'prefix': '10.50.0.0/16'}
>>> CRITICAL 2014-07-20 20:31:30,891 peer 1763 Connection to peer: 
>>> 192.168.100.100 established
>>> CRITICAL 2014-07-20 20:32:07,426 net_ctrl 121 RPC Session to ('127.0.0.1', 
>>> 41478) started
>>> INFO 2014-07-20 20:32:07,427 base 207 API method comm_conf.get called with 
>>> args: {}
>>> INFO 2014-07-20 20:32:28,828 base 207 API method core.reset_neighbor called 
>>> with args: {'ip_address': '192.168.100.100'}
>>> ERROR 2014-07-20 20:32:28,829 base 225 Traceback (most recent call last):
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/base.py",
>>>  line 220, in call
>>>    return call(**kwargs)
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/core.py",
>>>  line 71, in reset_neighor
>>>    neigh_conf.enabled = False
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/rtconf/neighbors.py",
>>>  line 351, in enabled
>>>    enable)
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/rtconf/base.py",
>>>  line 252, in _notify_listeners
>>>    callback(ConfEvent(self, evt, value))
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py",
>>>  line 433, in on_update_enabled
>>>    BGP_ERROR_SUB_ADMINISTRATIVE_SHUTDOWN
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py",
>>>  line 374, in send_notification
>>>    if len(self._localname()):
>>> TypeError: 'tuple' object is not callable
>>> 
>>> CRITICAL 2014-07-20 20:32:28,942 peer 1777 Connection to peer 
>>> 192.168.100.100 lost, reason: Peer closed connection Resetting retry 
>>> connect loop: False
>>> INFO 2014-07-20 20:32:28,944 speaker 600 Peer closed connection
>>> INFO 2014-07-20 20:32:57,340 base 207 API method comm_conf.get called with 
>>> args: {}
>>> ERROR 2014-07-20 20:33:16,802 hub 60 hub: uncaught exception: Traceback 
>>> (most recent call last):
>>>  File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line 52, in 
>>> _launch
>>>    func(*args, **kwargs)
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/core.py",
>>>  line 439, in start_protocol
>>>    bgp_proto.send_notification(code, subcode)
>>>  File 
>>> "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py",
>>>  line 374, in send_notification
>>>    if len(self._localname()):
>>> TypeError: 'tuple' object is not callable
>>> 
>>> (snip)
>>> 
>>> 
>>> (2) neighbor reset through RPC in Ryu-cli
>>> 
>>> (Cmd) request bgps comm_conf.get [{}]
>>> RESULT {'router_id': '10.10.0.2', 'label_range': [100, 100000], 'local_as': 
>>> 64512, 'bgp_conn_retry_time': 30, 'bgp_server_port': 179, 
>>> 'tcp_conn_timeout': 30, 'refresh_max_eor_time': 0, 
>>> 'refresh_stalepath_time': 0, 'maximum_paths_external_rtfilter_all': True}
>>> (Cmd)
>>> (Cmd) request bgps core.reset_neighbor [{'ip_address': '192.168.100.100'}]
>>> RPC ERROR 500.1 - 'tuple' object is not callable
>>> (Cmd) NOTIFICATION from bgps ['neighbor.state', {'state': 'Idle', 
>>> 'ip_address': '192.168.100.100'}]
>>> 
>>> (Cmd) request bgps comm_conf.get [{}]
>>> NOTIFICATION from bgps ['neighbor.down', {'ip_address': '192.168.100.100'}]
>>> RESULT {'router_id': '10.10.0.2', 'label_range': [100, 100000], 'local_as': 
>>> 64512, 'bgp_conn_retry_time': 30, 'bgp_server_port': 179, 
>>> 'tcp_conn_timeout': 30, 'refresh_max_eor_time': 0, 
>>> 'refresh_stalepath_time': 0, 'maximum_paths_external_rtfilter_all': True}
>>> (Cmd)
>>> (Cmd) request bgps comm_conf.get [{}]
>>> RESULT {'router_id': '10.10.0.2', 'label_range': [100, 100000], 'local_as': 
>>> 64512, 'bgp_conn_retry_time': 30, 'bgp_server_port': 179, 
>>> 'tcp_conn_timeout': 30, 'refresh_max_eor_time': 0, 
>>> 'refresh_stalepath_time': 0, 'maximum_paths_external_rtfilter_all': True}
>>> 
>>> 
>>> 
>>> 
>>> <wireshark_keep_peer_down.png>
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 2014/07/27 8:35、FUJITA Tomonori <fujita.tomon...@lab.ntt.co.jp 
>>> <mailto:fujita.tomon...@lab.ntt.co.jp>> のメール:
>>> 
>>>> Hi,
>>>> 
>>>> On Sun, 27 Jul 2014 08:00:18 +0900
>>>> Toshiki Tsuboi <t.tsubo2...@gmail.com <mailto:t.tsubo2...@gmail.com>> 
>>>> wrote:
>>>> 
>>>>> I have just found the bug for Ryu-bgp .
>>>>> Please let me share  a bug report  as follows
>>>> 
>>>> Thanks for that!
>>>> 
>>>>> (1) starting My sampleApp
>>>>> -> neighbor create succeed
>>>>> 
>>>>>   $ sudo ./start_RyuBGPSpeaker.sh
>>>>>   INFO 2014-07-20 19:07:29,012 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
>>>>>   0x7f8b8d8dba90>, 'local_as': 64512, 'bgp_server_port': 179, 
>>>>> 'refresh_max_eor_time': 0, 'refresh_stalepath_time': 0}
>>>>>   INFO 2014-07-20 19:07:29,059 base 207 API method neighbor.create called 
>>>>> with args: {'remote_as': 64511, 'ip_address': '192.168.100.100'}
>>>>>   INFO 2014-07-20 19:07:29,060 base 207 API method network.add called 
>>>>> with args: {'prefix': '10.20.0.0/24'}
>>>>>   INFO 2014-07-20 19:07:29,061 base 207 API method network.add called 
>>>>> with args: {'prefix': '10.30.0.0/24'}
>>>>>   INFO 2014-07-20 19:07:29,062 base 207 API method network.add called 
>>>>> with args: {'prefix': '10.40.0.0/16'}
>>>>>   INFO 2014-07-20 19:07:29,063 base 207 API method network.add called 
>>>>> with args: {'prefix': '10.50.0.0/16'}
>>>>>   CRITICAL 2014-07-20 19:07:30,096 peer 1759 Connection to peer: 
>>>>> 192.168.100.100 established
>>>>> 
>>>>> (2) neighbor reset through RPC in Ryu-cli
>>>>> -> RPC ERROR has occurred
>>>>> 
>>>>>   $ ./rpc_cli.py --peers=bgps=localhost:50002
>>>>>   (Cmd) request bgps core.reset_neighbor [{'ip_address': 
>>>>> '192.168.100.100'}]
>>>>>   RPC ERROR 500.1 - global name 'BGP_ERROR_CEASE' is not defined
>>>> 
>>>> How about the following (sorry, not tested)?
>>>> 
>>>> diff --git a/ryu/services/protocols/bgp/peer.py 
>>>> b/ryu/services/protocols/bgp/peer.py
>>>> index 4b3675a..03533d7 100644
>>>> --- a/ryu/services/protocols/bgp/peer.py
>>>> +++ b/ryu/services/protocols/bgp/peer.py
>>>> @@ -57,6 +57,10 @@ from ryu.lib.packet.bgp import BGP_MSG_UPDATE
>>>> from ryu.lib.packet.bgp import BGP_MSG_KEEPALIVE
>>>> from ryu.lib.packet.bgp import BGP_MSG_ROUTE_REFRESH
>>>> 
>>>> +from ryu.lib.packet.bgp import BGP_ERROR_CEASE
>>>> +from ryu.lib.packet.bgp import BGP_ERROR_SUB_ADMINISTRATIVE_SHUTDOWN
>>>> +from ryu.lib.packet.bgp import 
>>>> BGP_ERROR_SUB_CONNECTION_COLLISION_RESOLUTION
>>>> +
>>>> from ryu.lib.packet.bgp import BGPPathAttributeNextHop
>>>> from ryu.lib.packet.bgp import BGPPathAttributeAsPath
>>>> from ryu.lib.packet.bgp import BGPPathAttributeLocalPref
>>> 
>> 
>> 
>> 
>> ------------------------------------------------------------------------------
>> Want fast and easy access to all the code in your enterprise? Index and
>> search up to 200,000 lines of code with a free copy of Black Duck
>> Code Sight - the same software that powers the world's largest code
>> search on Ohloh, the Black Duck Open Hub! Try it now.
>> http://p.sf.net/sfu/bds
>> 
>> 
>> 
>> _______________________________________________
>> 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