Hi Hadem,

Thanks for your confirmation!
I will post this patch.

Thanks,
Iwase


On 2018年01月22日 15:46, Pynbiang Hadem wrote:
Hi Iwase,

Thanks. This could be really helpful.
I will let you know if i have any further requirements(need help) while implementing and using this.

Thanks
Hadem

On Mon, Jan 22, 2018 at 10:00 AM, Iwase Yusuke <iwase.yusu...@gmail.com <mailto:iwase.yusu...@gmail.com>> wrote:

    Hi Hadem,

    In stead of monitoring the UPDATE message arrivals, how about monitoring
    adj-RIB-in like the attached patch?

    With this patch, I could get new (or deleted) paths as "event" like the
    following.

    ====
    # my_bgp_app.py

    from ryu.base import app_manager
    from ryu.controller.handler import set_ev_cls
    from ryu.services.protocols.bgp import application as bgp_application


    class MyBGPApp(app_manager.RyuApp):
         _CONTEXTS = {
             'ryubgpspeaker': bgp_application.RyuBGPSpeaker,
         }

         def __init__(self, *args, **kwargs):
             super(MyBGPApp, self).__init__(*args, **kwargs)

             # Stores "ryu.services.protocols.bgp.application.RyuBGPSpeaker"
             # instance in order to call the APIs of
             # "ryu.services.protocols.bgp.bg
    <http://ryu.services.protocols.bgp.bg>pspeaker.BGPSpeaker" via
             # "self.app.speaker".
             # Please note at this time, "BGPSpeaker" is NOT instantiated yet.
             self.app = kwargs['ryubgpspeaker']

         @set_ev_cls(bgp_application.EventAdjRibInChanged)
         def _best_patch_changed_handler(self, ev):
    self.logger.info <http://self.logger.info>(
                 'adj-RIB-in path changed: is_withdraw=%s, path=%s, '
                 'peer_ip=%s, peer_as=%d',
                 ev.is_withdraw, ev.path, ev.peer_ip, ev.peer_as)
    ====

    e.g.)
    $ ryu-manager my_bgp_app.py \
         --bgp-app-config-file ryu/services/protocols/bgp/bgp_sample_conf.py
    ...(snip)...
    adj-RIB-in path changed: is_withdraw=False, path=Path(source: Peer(ip:
    10.0.0.2, asn: 65002), nlri: BGPNLRI(addr='10.2.1.0',length=24), source
    ver#: 1, path attrs.: {1:
    BGPPathAttributeOrigin(flags=64,length=1,type=1,value=2), 2:
    BGPPathAttributeAsPath(flags=64,length=6,type=2,value=[[65002]]), 3:
    BGPPathAttributeNextHop(flags=64,length=4,type=3,value='10.0.0.2')},
    nexthop: 10.0.0.2, is_withdraw: False), peer_ip=10.0.0.2, peer_as=65002
    ...(snip)...


    Thanks,
    Iwase


    On 2018年01月19日 17:56, Pynbiang Hadem wrote:

        Hi Iwase,

        Calling "neighbor_get()" function periodically may not suffice some of
        our requirements.
        The first method of "Calling it every time the update message arrives"
        is more realistic.
        SDN being program driven, I think we need something like
        "packet_in_handler" for arrival of BGP Update packets so that
        applications can handle the same.

        Is the Ryu community working to enable/implement such a capability in
        the near future?.

        Thanks
        Hadem



        On Fri, Jan 19, 2018 at 6:18 AM, Iwase Yusuke <iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com> <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>> wrote:

             Hi Hadem,


                 *How can i call my "neighbor_get()"function after the update
        messages are
                 received from the neighbor?. can we use any event to achieve
        this or any
                 other
                 ways?.*


             Originally, when do you need to call "neighbor_get()" function?
             Every after the update message received? Periodically per N 
seconds?

             To achieve the former one, unfortunately, now Ryu has no event for
        such, only
             for notifying;
             - best patch changed due to new UPDATE received
             - peer up or down
        
https://github.com/osrg/ryu/blob/8287e3513a780c2dbfe3003f6b632d819a0e792c/ryu/services/protocols/bgp/application.py#L145-L147
        
<https://github.com/osrg/ryu/blob/8287e3513a780c2dbfe3003f6b632d819a0e792c/ryu/services/protocols/bgp/application.py#L145-L147>
<https://github.com/osrg/ryu/blob/8287e3513a780c2dbfe3003f6b632d819a0e792c/ryu/services/protocols/bgp/application.py#L145-L147
        
<https://github.com/osrg/ryu/blob/8287e3513a780c2dbfe3003f6b632d819a0e792c/ryu/services/protocols/bgp/application.py#L145-L147>>

             For the latter one, how about spawn a new thread which calls
        "neighbor_get()"
             periodically?


             FYI, "application.py" can be integrated with your own application
        without
             directly modifying "application.py".
        
http://ryu-iwase.readthedocs.io/en/doc-services_protocols_bgp_application/app/bgp_application.html#integration-with-other-applications
        
<http://ryu-iwase.readthedocs.io/en/doc-services_protocols_bgp_application/app/bgp_application.html#integration-with-other-applications>
<http://ryu-iwase.readthedocs.io/en/doc-services_protocols_bgp_application/app/bgp_application.html#integration-with-other-applications
        
<http://ryu-iwase.readthedocs.io/en/doc-services_protocols_bgp_application/app/bgp_application.html#integration-with-other-applications>>

             Please note the above link is temporary, because this document is 
under
             reviewing on Ryu-devel and not yet merged to upstream. When merged,
        you can read
             this document from the "official" Ryu Documentation page.


             Thanks,
             Iwase


             On 2018年01月19日 01:55, Pynbiang Hadem wrote:

                 *Hi Iwase,*
                 *
                 *
                 *Yes you are right. The update messages from neighbor
        (10.0.0.2) was
                 received much later as can be seen in the output log
        file(BGPTest-h1.py)
                 attached herewith.*
                 *The update message received is as below:*
                 /Received msg from ('10.0.0.2', '55930') <<
BGPUpdate(len=106,nlri=[],path_attributes=[BGPPathAttributeMpReachNLRI(afi=2,flags=128,length=49,next_hop='::ffff:10.0.0.2',nlri=[LabelledVPNIP6AddrPrefix(addr=([101],
                 BGPTwoOctetAsRD(admin=65002,assigned=150,type=0),
                 '2001:db8:2::'),length=152)],safi=128,type=14),
                 BGPPathAttributeOrigin(flags=64,length=1,type=1,value=2),
                 
BGPPathAttributeAsPath(flags=64,length=6,type=2,value=[[65002]]),
                 
BGPPathAttributeMultiExitDisc(flags=128,length=4,type=4,value=100),
BGPPathAttributeExtendedCommunities(communities=[BGPTwoOctetAsSpecificExtendedCommunity(as_number=65002,local_administrator=150,subtype=2,type=0)],flags=192,length=8,type=16)],total_path_attribute_len=83,type=2,withdrawn_routes=[],withdrawn_routes_len=0)/
                 /Received route with RT ['65002:150'] that is of no interest to
        any VRFs
                 or Peers set(['65001:200', '65001:350', '65001:150', 
'65001:300',
                 '65001:100', '65001:250']). Ignoring paths from this UPDATE:
BGPUpdate(len=106,nlri=[],path_attributes=[BGPPathAttributeMpReachNLRI(afi=2,flags=128,length=49,next_hop='::ffff:10.0.0.2',nlri=[LabelledVPNIP6AddrPrefix(addr=([101],
                 BGPTwoOctetAsRD(admin=65002,assigned=150,type=0),
                 '2001:db8:2::'),length=152)],safi=128,type=14),
                 BGPPathAttributeOrigin(flags=64,length=1,type=1,value=2),
                 
BGPPathAttributeAsPath(flags=64,length=6,type=2,value=[[65002]]),
                 
BGPPathAttributeMultiExitDisc(flags=128,length=4,type=4,value=100),
BGPPathAttributeExtendedCommunities(communities=[BGPTwoOctetAsSpecificExtendedCommunity(as_number=65002,local_administrator=150,subtype=2,type=0)],flags=192,length=8,type=16)],total_path_attribute_len=83,type=2,withdrawn_routes=[],withdrawn_routes_len=0)/
                 /Received msg from ('10.0.0.2', '55930') <<
BGPUpdate(len=76,nlri=[],path_attributes=[BGPPathAttributeMpReachNLRI(afi=2,flags=128,length=30,next_hop='::ffff:10.0.0.2',nlri=[IP6AddrPrefix(addr='2001:db8:1::',length=64)],safi=1,type=14),
                 BGPPathAttributeOrigin(flags=64,length=1,type=1,value=0),
                 
BGPPathAttributeAsPath(flags=64,length=6,type=2,value=[[65002]]),
BGPPathAttributeMultiExitDisc(flags=128,length=4,type=4,value=100)],total_path_attribute_len=53,type=2,withdrawn_routes=[],withdrawn_routes_len=0)
                 /

                 *How can i call my "neighbor_get()"function after the update
        messages
                 are received from the neighbor?. can we use any event to
        achieve this or
                 any other ways?.*

                 Thanks
                 Hadem

                 On Wed, Jan 17, 2018 at 4:57 AM, Iwase Yusuke
        <iwase.yusu...@gmail.com <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>> <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>>> wrote:

                      Hi Hadem,

                      In that case, you need to call "neighbor_get()" after
        connections
                 to neighbor(s)
                      established and received some routes.
                      It seems that Ryu just returns a empty list because Ryu
        does not
                 yet received
                      any routes from neighbors.

                      Thanks,
                      Iwase


                      On 2018年01月15日 17:48, Pynbiang Hadem wrote:

                          Hi Iwase,

                          Precisely, i actually wanted to get *adj-RIB-in*
        information.

                          Is there any problem with my code while trying to
        achieve this?.

                          Thanks
                          Hadem


                          On Mon, Jan 15, 2018 at 5:38 AM, Iwase Yusuke
                 <iwase.yusu...@gmail.com <mailto:iwase.yusu...@gmail.com>
        <mailto:iwase.yusu...@gmail.com <mailto:iwase.yusu...@gmail.com>>
                          <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>> <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com 
<mailto:iwase.yusu...@gmail.com>>
                          <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>>>> wrote:

                               Hi Hadem,

                               It is depending on what you want to get though, 
you
                 attempt to get
                          neighbors
                               information, right?
                               In that case, you should use "neighbors_get()"
        (plural
                 form) instead of
                               "neighbor_get()".
        
http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.neighbors_get>>>>

                               With "neighbor_get()" with
        "route_type='received-routes'", Ryu
                          should return the
                               adj-RIB-in information and I guess it is always
        an empty
                 list when
                          starting up
                               (connections are not established with neighbors).


                               Thanks,
                               Iwase


                               On 2018年01月13日 00:59, Pynbiang Hadem wrote:

                                   Hi Iwase,

                                   I've made the modifications accordingly. *Now
        i am
                 able to see the
                                   output for vrfs_get() and rib_get()*.
        *However there
                 is still
                          no output
                                   for neighbor_get() . ---output is in
        **BGPTest-output.py*
                                   *Pls advice how to get the output for
        neighbor_get().*
                                   *Enclosed herewith: (1) modified
        bgpapplication1.py & (2)
                          BGPTest-output.py*

                                   Thanks
                                   Hadem





                                   On Fri, Jan 12, 2018 at 7:36 AM, Iwase Yusuke
                          <iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com> <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>
                 <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com> <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>>
                                   <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com 
<mailto:iwase.yusu...@gmail.com>>
                          <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>>> <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>

                 <mailto:iwase.yusu...@gmail.com 
<mailto:iwase.yusu...@gmail.com>>

                          <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com> <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>>

                                   <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com 
<mailto:iwase.yusu...@gmail.com>>
                          <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>
                 <mailto:iwase.yusu...@gmail.com
        <mailto:iwase.yusu...@gmail.com>>>>>> wrote:

                                        Hi Hadem,

                                        First, the return value for each
        BGPSpeaker's API
                 (with
                                   format="json") is str
                                        type value.
                                        Why you need to split them like;
                                             vrf_result =
        self.speaker.vrfs_get('routes',
                 None,
                          'all', 'json')
                                             nowtime = vrf_result[0]  # <--- ?
                                             result = vrf_result[1]   # <--- ?

                                        And, please confirm the meaning of each
        argument when
                          calling         BGPSpeaker's
                                        APIs.
                                        For example, to getting all VRF
        configurations,
                 you need
                          to specify
                                   "summary"
                                        instead of "routes".
        
http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get
        
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.vrfs_get>>>>>

                                        Thanks,
                                        Iwase


                                        On 2018年01月11日 21:55, Pynbiang Hadem
        wrote:

                                            *Hi,*
                                            *
                                            *
                                            *I am getting blank output
        for BGPSpeaker
                 show_vrf,
                          show_rib,
                                            show_neighbor. The partial output is
        as below:*
 ----------------------------------
                                            /Sending MED Update Message.../
                                            /Send BGP UPDATE Message for
        changing MED[100]/
                                            /API method neighbor.update called
        with args:
                          {'ip_address':
                                   '10.0.0.2',
                                            'changes': {'multi_exit_disc': 
100}}/
                                            /on_update_med fired/
                                            /MED value for neigh: Neighbor: 
10.0.0.2
                 updated to 100/
                                            /Calling get VRFs Information .../
                                            /Shows BGP VRF information in a json
        format/
                                            /API method operator.show called
        with args:
                 {'params':
                          ['vrf',
                                   'routes',
                                            'all'], 'format': 'json'}/
                                            /+++++++++++++++++++++++++++++++/
                                            /{ : Show VRFs /
                                            /+++++++++++++++++++++++++++++++/
                                            /"/
                                            /
                                            /
                                            /Calling SHOW RIB .../
                                            /Shows BGP routing information in a
        json format/
                                            /API method operator.show called
        with args:
                 {'params':
                          ['rib',
                                   'all'],
                                            'format': 'json'}/
                                            /+++++++++++++++++++++++++++++++/
                                            /{ : Show rib /
                                            /+++++++++++++++++++++++++++++++/
                                            /"/
                                            /
                                            /
                                            /Calling SHOW Neighbor.../
                                            /Inside Show Neighbor BGP UPDATE
        Message/
                                            /API method operator.show called
        with args:
                 {'params':
                          ['neighbor',
                                            'received-routes', '10.0.0.2', 
'all'],
                 'format': 'json'}/
                                            /[]/
                                            /+++++++++++++++++++++++++++++++/
                                            /[ : Show neighbor /
                                            /+++++++++++++++++++++++++++++++/
                                            /]/
------------------------------------------

                                            *I am attaching herewith my BGP
        application
                                   file(bgpapplication1.py). *
                                            *Pls let me know what mistake i have
        done and
                 how to
                          display
                                   the above
                                            details.*
                                            *
                                            *
                                            *Thanks*
                                            *Hadem*




------------------------------------------------------------------------------
                                            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 <mailto:Ryu-devel@lists.sourceforge.net>
        <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>>
                          <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
                          <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>>>
                                   <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
                          <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>>
                                   <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
                          <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>>>>
        https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
<https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>>
 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
<https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>>>
  <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
<https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>>
 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
<https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <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 <mailto:Ryu-devel@lists.sourceforge.net>
        <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>>
                          <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
                          <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>>>
        https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
<https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>>
 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
<https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <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 <mailto:Ryu-devel@lists.sourceforge.net>
        <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>
                 <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>>
        https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
<https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <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 <mailto:Ryu-devel@lists.sourceforge.net>
        <mailto:Ryu-devel@lists.sourceforge.net
        <mailto:Ryu-devel@lists.sourceforge.net>>
        https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
                 <https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <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 <mailto:Ryu-devel@lists.sourceforge.net>
        https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <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


------------------------------------------------------------------------------
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

Reply via email to