Hi Hadem,
> *I guess your suggestion about using the socket method may be the best
option. *Have you ever tried
> the socket approach?.
I haven't tried it yet because with this approach, it is required to handle the
manners of the BGP
protocol (e.g., sending the OPEN message when established, sending KEEPALIVE
messages periodically).
Before you staring this approach, why you need to get all UPDATE message in
your Ryu app?
Why only the best path is not enough? Ryu provides the APIs to retrieve all
routes which Ryu
received from peers, is it not appropriate?
http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.rib_get
I guess most of the UPDATE message field can be retrieved from the "Path"
instance of the
EventPrefix or the return values of "BGPSpeaker.rib_get()".
http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.EventPrefix
And If you just need to monitor the routes which Ryu received, how about using
the BMP protocol?
The supported features seem to be limited, Ryu sends the updates of peer states
and of the
adj-rib-in as the BMP messages.
http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.bmp_server_add
FYI, Ryu BGP service receives the BGP message here, if you don't mind the
changing Ryu source,
you might be able to add some "hooks" for your application.
(I don't think it better way though...)
Sorry, I've missed the link to the source code in my previous mail.
The link should point to the following;
https://github.com/osrg/ryu/blob/7f6d8730ab321412e410f0eb65b8fba6947cd380/ryu/services/protocols/bgp/speaker.py#L353
As you can see in the above code, we need to handle other BGP messages with the
socket approach...
Thanks,
Iwase
On 2017年11月28日 22:49, Pynbiang Hadem wrote:
Hi Iwase,
Regarding the *EventBestPathChanged *question i asked in the previous mail, i think i may hove got
the wrong idea.
I guess I'm a little confused about the *EventBestPathChanged.*
*
*
*I guess your suggestion about using the socket method may be the best option. *Have you ever tried
the socket approach?.
*
*
Thanks
Hadem
On Tue, Nov 28, 2017 at 2:16 PM, Pynbiang Hadem <pynbiang.ha...@gmail.com
<mailto:pynbiang.ha...@gmail.com>> wrote:
Hi Iwase,
Thanks for the response. Changing the source code may not be the best
option as there are
disadvantages involved.
What about using the *"EventBestPathChanged(best_path_change_handler)*"
event handler?. Do you
think we can catch the BGP Update messages using this event?.
Regards
Hadem
On Tue, Nov 28, 2017 at 5:09 AM, Iwase Yusuke <iwase.yusu...@gmail.com
<mailto:iwase.yusu...@gmail.com>> wrote:
Hi Hadem,
Please let me know what "process" exactly means.
You mean receiving all BGP UPDATE messages in your application, right?
Currently, Ryu BGP service does not provide the APIs to pass the
received BGP Update messages to
other applications, so you need to manually open socket, parse the
received buffer and
handle the
BGP states manually.
Example:
import socket
from ryu.lib.packet import bgp
...(snip)...
sock = socket.socket()
...(snip)... # bind, connect, accept, ...
buf = self.socket.recv(required_len)
msg, _, rest = bgp.BGPMessage.parser(buf)
# Do handling
FYI, Ryu BGP service receives the BGP message here, if you don't mind
the changing Ryu source,
you might be able to add some "hooks" for your application.
(I don't think it better way though...)
Thanks,
Iwase
On 2017年11月27日 18:15, Pynbiang Hadem wrote:
Hi Iwase,
Actually, i want to process the BGP Update messages in my
application.
Pls suggest how this can be done.
Thanks
Hadem
On Mon, Nov 27, 2017 at 12:54 PM, Iwase Yusuke
<iwase.yusu...@gmail.com
<mailto:iwase.yusu...@gmail.com> <mailto:iwase.yusu...@gmail.com
<mailto:iwase.yusu...@gmail.com>>> wrote:
Hi Hadem,
You don't need to handle (receive, extract attributes and so
on) the BGP UPDATE
messages directly.
Ryu BGP service does handle the BGP messages, then notify the
updates of the best
path or connect/
disconnect of neighbors as the "events".
For example, Ryu will call the given
"best_path_change_handler" if you uses the
APIs of BGPSpeaker,
http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker>
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker
<http://ryu.readthedocs.io/en/latest/library_bgp_speaker_ref.html#ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker>>
and application.py will generate the event instance if your
application observes them.
https://github.com/osrg/ryu/blob/ed2c6eca2227c9efb3c7e51cdd6db6bf578ec609/ryu/services/protocols/bgp/application.py#L141-L171
<https://github.com/osrg/ryu/blob/ed2c6eca2227c9efb3c7e51cdd6db6bf578ec609/ryu/services/protocols/bgp/application.py#L141-L171>
<https://github.com/osrg/ryu/blob/ed2c6eca2227c9efb3c7e51cdd6db6bf578ec609/ryu/services/protocols/bgp/application.py#L141-L171
<https://github.com/osrg/ryu/blob/ed2c6eca2227c9efb3c7e51cdd6db6bf578ec609/ryu/services/protocols/bgp/application.py#L141-L171>>
Thanks,
Iwase
On 2017年11月24日 21:32, Pynbiang Hadem wrote:
Hi,
I have two Autonomous Systems AS1 and AS2. I am able to
send BGP update message
from AS1 to
AS2 and vice versa. I want to process the BGP update
messages in my RYU
application. I'm a
little confused how to achieve that.
Pls help.
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>>
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