Thanks for the reply, I'm running quagga on mininet and each router is in its own namespace, I think I need to connect to one specific zebra daemon. Do you know where I can find other examples or a clear docs for these APIs?
On 23/11/2017 23:48, Iwase Yusuke wrote: > Hi, > > How about using the Zebra client service library of Ryu? > https://github.com/osrg/ryu/blob/master/ryu/services/protocols/zebra/client/sample_dumper.py > > This library provides the APIs to communicate with the Zebra daemon of > Quagga (or FRRouting). > For example, if you need "connected" routes in your Ryu application, > the following dumps the > "connected" routes which the Zebra daemon redistributed. > > > $ git diff > diff --git a/ryu/services/protocols/zebra/client/sample_dumper.py > b/ryu/services/protocols/zebra/client/sample_dumper.py > index 395620e..b4ab8ac 100644 > --- a/ryu/services/protocols/zebra/client/sample_dumper.py > +++ b/ryu/services/protocols/zebra/client/sample_dumper.py > @@ -32,6 +32,17 @@ class ZClientDumper(ZClient): > 'Zebra server connected to %s: %s', > ev.zserv.sock.getpeername(), ev.zserv.sock) > > + # Send redistribute add message for the route type which you > need > + for route_type in [zebra.ZEBRA_ROUTE_CONNECT]: > + self.send_msg( > + zebra.ZebraMessage( > + version=self.zserv_ver, > + body=zebra.ZebraRedistributeAdd( > + route_type=route_type, > + ), > + ), > + ) > + > @set_ev_cls(event.EventZebraRouterIDUpdate) > def _router_id_update_handler(self, ev): > self.logger.info( > @@ -47,6 +58,16 @@ class ZClientDumper(ZClient): > self.logger.info( > 'ZEBRA_INTERFACE_ADDRESS_ADD received: %s', ev.__dict__) > > + @set_ev_cls(event.EventZebraIPv4RouteAdd) > + def _ipv4_route_add_handler(self, ev): > + self.logger.info( > + 'ZEBRA_IPV4_ROUTE_ADD received: %s', ev.__dict__) > + > + @set_ev_cls(event.EventZebraIPv4RouteDelete) > + def _ipv4_route_delete_handler(self, ev): > + self.logger.info( > + 'ZEBRA_IPV4_ROUTE_DELETE received: %s', ev.__dict__) > + > @set_ev_cls(zclient_event.EventZServDisconnected) > def _zserv_disconnected_handler(self, ev): > self.logger.info( > > > $ ryu-manager ryu/services/protocols/zebra/client/sample_dumper.py > loading app ryu/services/protocols/zebra/client/sample_dumper.py > instantiating app ryu/services/protocols/zebra/client/sample_dumper.py > of ZClientDumper > Zebra server connected to /var/run/quagga/zserv.api: > <eventlet.greenio.base.GreenSocket object at 0x7fb945a14a90> > ...(snip)... > ZEBRA_IPV4_ROUTE_ADD received: {'zclient': > <sample_dumper.ZClientDumper object at 0x7fb949b5a668>, 'version': 2, > 'body': > ZebraIPv4RouteAdd(distance=0,flags=16,from_zebra=True,ifindexes=[1],instance=None,message=15,metric=0,mtu=None,nexthops=['0.0.0.0'],prefix='2.2.2.2/32',route_type=2,safi=None,src_prefix=None,tag=None), > > 'command': 7, 'length': 29, 'vrf_id': 0} > ZEBRA_IPV4_ROUTE_ADD received: {'zclient': > <sample_dumper.ZClientDumper object at 0x7fb949b5a668>, 'version': 2, > 'body': > ZebraIPv4RouteAdd(distance=0,flags=16,from_zebra=True,ifindexes=[2],instance=None,message=15,metric=0,mtu=None,nexthops=['0.0.0.0'],prefix='192.168.23.0/24',route_type=2,safi=None,src_prefix=None,tag=None), > > 'command': 7, 'length': 28, 'vrf_id': 0} > ZEBRA_IPV4_ROUTE_ADD received: {'zclient': > <sample_dumper.ZClientDumper object at 0x7fb949b5a668>, 'version': 2, > 'body': > ZebraIPv4RouteAdd(distance=0,flags=16,from_zebra=True,ifindexes=[3],instance=None,message=15,metric=0,mtu=None,nexthops=['0.0.0.0'],prefix='192.168.24.0/24',route_type=2,safi=None,src_prefix=None,tag=None), > > 'command': 7, 'length': 28, 'vrf_id': 0} > > > Thanks, > Iwase > > > On 2017年11月23日 00:27, Alessandro Gaballo wrote: >> Hi, I'm running Quagga on my mininet topology to capture routing >> information, I wanted to know if it's possible to retrieve the routing >> table on the quagga routers (which are basically mininet hosts) or at >> least the flow tables. If so, how do I do it? >> >> >> ------------------------------------------------------------------------------ >> >> >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Ryu-devel mailing list >> Ryu-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ryu-devel >> ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel