Hi, Fujita-san

I’m OK for you comment.

like this?

+                if self._neigh_conf.multi_exit_disc:
                    multi_exit_disc = BGPPathAttributeMultiExitDisc(
                        self._neigh_conf.multi_exit_disc
                    )
+            if not self.is <http://self.is/>_ebgp_peer():
+                multi_exit_disc = pathattr_map.get(
+                    BGP_ATTR_TYPE_MULTI_EXIT_DISC)


> 2014/11/18 7:33、FUJITA Tomonori <[email protected]> のメール:
> 
> On Sun, 16 Nov 2014 10:39:42 +0900
> Toshiki Tsuboi <[email protected] <mailto:[email protected]>> wrote:
> 
>> RyuBGP doesn't work well regarding the advertisement of BGP MED Attribute as 
>> follows.
>> 
>> (1) In spite of receiving BGP MED:"500" from iBGP(R2), RyuBGP can't 
>> advertise BGP MED:"100" to eBGP(R3).
>> 
>>    R1 -------------> R2 -------------> RyuBGP -------------> R3
>>       eBGP(MED:500)     iBGP(MED:500)    ^     eBGP(MED:500)
>>                                       (MED:100)
>> 
>> (2) When RyuBGP has received BGP MED:"200" from eBGP(R3), RyuBGP has sended 
>> BGP with missing-MED to iBGP(R2).
>>    As result, PolicyBaseRouting in R2(other RyuBGP) doesn't work properly 
>> becase of selecting wrong BestPath.
>> 
>>                   eBGP(MED:100)
>>    R1 ------------------------------------>+
>>                                            |
>>    R3 -------------> RyuBGP -------------> R2(RyuBGP) => Wrong result 
>> [BestPath is "R3-R2"]
>>       eBGP(MED:200)          iBGP(MED:N/A)
>> 
>> Signed-off-by: Toshiki Tsuboi <[email protected]>
>> ---
>> ryu/services/protocols/bgp/peer.py | 10 +++++++---
>> 1 file changed, 7 insertions(+), 3 deletions(-)
> 
> Thanks a lot, applied!
> 
>> diff --git a/ryu/services/protocols/bgp/peer.py 
>> b/ryu/services/protocols/bgp/peer.py
>> index eac098c..48806bc 100644
>> --- a/ryu/services/protocols/bgp/peer.py
>> +++ b/ryu/services/protocols/bgp/peer.py
>> @@ -75,6 +75,7 @@ from ryu.lib.packet.bgp import 
>> BGPPathAttributeExtendedCommunities
>> from ryu.lib.packet.bgp import BGPPathAttributeMpReachNLRI
>> from ryu.lib.packet.bgp import BGPPathAttributeMpUnreachNLRI
>> from ryu.lib.packet.bgp import BGPPathAttributeCommunities
>> +from ryu.lib.packet.bgp import BGPPathAttributeMultiExitDisc
>> 
>> from ryu.lib.packet.bgp import BGP_ATTR_TYPE_ORIGIN
>> from ryu.lib.packet.bgp import BGP_ATTR_TYPE_AS_PATH
>> @@ -940,12 +941,15 @@ class Peer(Source, Sink, NeighborConfListener, 
>> Activity):
>>             # For eBGP session we can send multi-exit-disc if configured.
>>             multi_exit_disc = None
>>             if self.is_ebgp_peer():
>> -                multi_exit_disc = pathattr_map.get(
>> -                    BGP_ATTR_TYPE_MULTI_EXIT_DISC)
>> -                if not multi_exit_disc and self._neigh_conf.multi_exit_disc:
>> +                if self._neigh_conf.multi_exit_disc:
>>                     multi_exit_disc = BGPPathAttributeMultiExitDisc(
>>                         self._neigh_conf.multi_exit_disc
>>                     )
>> +                else:
>> +                    pass
> 
> Looks like we remove 'pass' and move the below code here?
> 
>> +            if not self.is <http://self.is/>_ebgp_peer():
>> +                multi_exit_disc = pathattr_map.get(
>> +                    BGP_ATTR_TYPE_MULTI_EXIT_DISC)
>> 
>>             # LOCAL_PREF Attribute.
>>             if not self.is <http://self.is/>_ebgp_peer():
>> -- 
>> 1.9.1
>> 
>> 
>> ------------------------------------------------------------------------------
>> Comprehensive Server Monitoring with Site24x7.
>> Monitor 10 servers for $9/Month.
>> Get alerted through email, SMS, voice calls or mobile push notifications.
>> Take corrective actions from your mobile device.
>> http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk 
>> <http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk>
>> _______________________________________________
>> Ryu-devel mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/ryu-devel 
>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to