It looks VRRPManager can't handle virtual_ip_address properly as bellow.

$ sudo ryu-manager ryu.services.protocols.vrrp.rpc_manager.py
loading app ryu.services.protocols.vrrp.rpc_manager.py
loading app ryu.services.protocols.vrrp.manager
instantiating app ryu.services.protocols.vrrp.manager of VRRPManager
instantiating app ryu.services.protocols.vrrp.rpc_manager.py of RpcVRRPManager
instantiating app None of VRRPInterfaceMonitorNetworkDevice
instantiating app None of VRRPRouterV3
handle EventVRRPStateChanged
VRID:1 VRRP-Router-VRRPInterfaceNetworkDevice<00:00:00:00:00:00, 192.168.0.2, 
None, eth1>-1-ipv4: None -> Initialize
handle EventVRRPStateChanged
VRID:1 VRRP-Router-VRRPInterfaceNetworkDevice<00:00:00:00:00:00, 192.168.0.2, 
None, eth1>-1-ipv4: Initialize -> Backup
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/base/app_manager.py", line 
276, in _event_loop
    handler(ev)
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/vrrp/router.py", 
line 234, in master_down_handler
    self.state_impl.master_down(ev)
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/vrrp/router.py", 
line 613, in master_down
    self._master_down()
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/vrrp/router.py", 
line 579, in _master_down
    vrrp_router.send_advertisement()
  File 
"/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/vrrp/router.py", 
line 219, in send_advertisement
    packet_.serialize()
  File "/usr/local/lib/python2.7/dist-packages/ryu/lib/packet/packet.py", line 
74, in serialize
    data = p.serialize(self.data, prev)
  File "/usr/local/lib/python2.7/dist-packages/ryu/lib/packet/vrrp.py", line 
394, in serialize
    return self.serialize_static(self, prev)
  File "/usr/local/lib/python2.7/dist-packages/ryu/lib/packet/vrrp.py", line 
625, in serialize_static
    *[conv(x) for x in vrrp_.ip_addresses])
  File "/usr/local/lib/python2.7/dist-packages/ryu/lib/addrconv.py", line 27, 
in text_to_bin
    return self._addr(text, **self._addr_kwargs).packed
  File "/usr/local/lib/python2.7/dist-packages/netaddr/ip/__init__.py", line 
314, in __init__
    % (addr, self._module.version))
AddrFormatError: base address '.' is not IPv4

Signed-off-by: Toshiki Tsuboi <[email protected]>
---
 ryu/services/protocols/vrrp/rpc_manager.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ryu/services/protocols/vrrp/rpc_manager.py 
b/ryu/services/protocols/vrrp/rpc_manager.py
index c532e7b..6ac07b1 100644
--- a/ryu/services/protocols/vrrp/rpc_manager.py
+++ b/ryu/services/protocols/vrrp/rpc_manager.py
@@ -129,6 +129,8 @@ class RpcVRRPManager(app_manager.RyuApp):
                                               'preempt_delay',
                                               'statistics_interval'))
         try:
+            ip_addr = config_params.pop('ip_addresses')
+            config_params['ip_addresses'] = [ip_addr]
             config = vrrp_event.VRRPConfig(**config_params)
         except:
             raise RPCError('parameters are invalid, %s' % (str(param_dict)))
-- 
2.4.9 (Apple Git-60)


------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to