Hi Iwase I checked latest patch in the zclient-Enable_to_request_MPLS_label_range branch of your gobgp fork. It works as expected. See
[ashaikh@vsp-vpe-west ~]$ gobgp global rib -a vpnv4 Network Labels Next Hop AS_PATH Age Attrs *> 100:1:192.168.0.0/24 [16] 10.200.0.2 65001 00:10:49 [{Origin: i} {Med: 0} {Extcomms: [100:1]}] I have a follow-up question though. I don't see any route in the default MPLS FIB which instructs Linux kernel to direct incoming traffic with label 16 to be forwarded to the blue VRF (or appropriate table-id). I'd expect to see something akin to this. [ashaikh@vsp-vpe-west ~]$ ip -f mpls route 16 dev blue <= expected entry for the route above... I believe that to achieve this, you will have to push such an MPLS route to the Zebra daemon. Let me know your thoughts. thx aman -----Original Message----- From: Iwase Yusuke [mailto:iwase.yusu...@gmail.com] Sent: Monday, February 5, 2018 11:06 PM To: SHAIKH, AMAN (AMAN) <asha...@research.att.com> Cc: gobgp-devel@lists.sourceforge.net Subject: Re: [GoBGP-devel] MPLS label issue with VPNv4 routes Hi Aman, Hmmmm... it might be complicated some though, how about the following? With "mpls-label-range-size = 1" option, GoBGP should request a MPLS allocation every time when adding VRF. https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_iwaseyusuke_gobgp_compare_master...iwaseyusuke-3Azclient-2DEnable-5Fto-5Frequest-5FMPLS-5Flabel-5Frange&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=TdGJjOKuBMLxHOPXehiGl4RRoFxfLc4RqJAkSHslcKg&s=rZVh23aOLleOYpYr_kFWlQkzupE8ATC0NTlkhVa-Ucw&e= Thanks, Iwase On 2018年02月06日 02:00, SHAIKH, AMAN (AMAN) wrote: > Hi Iwase > > Thanks for your patch. I will try out the patch in a day or two and let you > know how things go. > > I have one suggestion though. The current patch asks zebra client ***only > once*** for a label allocation of configured size. Couldn't this be enhanced > where GoBGP can ask for more chunks of labels if it runs out of the most > recent chunk? This will be a more complete solution in my opinion. > > thanks again for working on this Iwase... > > aman > > > -----Original Message----- > From: Iwase Yusuke [mailto:iwase.yusu...@gmail.com] > Sent: Sunday, February 4, 2018 11:42 PM > To: SHAIKH, AMAN (AMAN) <asha...@research.att.com> > Cc: gobgp-devel@lists.sourceforge.net > Subject: Re: [GoBGP-devel] MPLS label issue with VPNv4 routes > > Hi Aman, > > With the following patches, I could get the allocated MPLS label range from > FRR/Zebra and assign a MPLS label per VRF. > https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_osrg_g > obgp_compare_master...iwaseyusuke-3Azclient-2DEnable-5Fto-5Frequest-5F > MPLS-5Flabel-5Frange&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOE > oCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKiE > gMSu1U&s=lr7g09z0VZHzzbXuGw4IbW25nKsXwZLGTEDmhoSZZTk&e= > > ```toml > [zebra.config] > enabled = true > url = "unix:/var/run/frr/zserv.api" > redistribute-route-type-list = ["connect"] > version = 4 > mpls-label-range-size = 100 > ``` > > $ gobgp vrf add VRF_A rd 65000:100 rt both 65000:100 $ gobgp vrf VRF_A rib > add 10.0.0.0/24 # "16" is MPLS label value which FRR/Zebra allocated $ gobgp > global rib -a vpnv4 > Network Labels Next Hop AS_PATH > Age Attrs > *> 65000:100:10.0.0.0/24 [16] 0.0.0.0 > 00:00:00 [{Origin: ?} {Extcomms: [65000:100]}] > > Could you try this patches? > > Thanks, > Iwase > > > On 2018年02月05日 10:31, Iwase Yusuke wrote: >> Hi Aman, >> >> >> > Thanks for the pointer. Can GoBGP communicate with FRR/Zebra for >> label > assignment instead of assigning a label of 0 to VPNv4 routes? >> >> Currently, GoBGP does not have the feature to request the label >> allocation to FRR/Zebra, also the message implementation to send requests. >> FYI, FRR/BGPd also does not have such: >> >> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_FRRou >> t >> ing_frr_issues_1207&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOE >> o >> CVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKiE >> g MSu1U&s=0FBImI3HgUJTVr5jHMwYcIY10fri5S7OpdbBrFNm_1Q&e= >> >> >> > One possibility is to communicate with FRR/Zebra at the time of >> VRF creation > and deletion for label allocation and freeing respectively? >> >> I read some FRR/Zebra code, Zebra client should send request to >> allocate MPLS label as a chunk of MPLS label range, not per VRF create and >> deletion. >> We need to some more implementation if need to support this feature. >> >> >> Thanks, >> Iwase >> >> >> On 2018年02月01日 00:23, SHAIKH, AMAN (AMAN) wrote: >>> >>> Hi Fujita >>> >>> -----Original Message----- >>> From: FUJITA Tomonori [mailto:fujita.tomon...@gmail.com] >>> Sent: Tuesday, January 30, 2018 6:38 PM >>> To: SHAIKH, AMAN (AMAN) <asha...@research.att.com> >>> Cc: gobgp-devel@lists.sourceforge.net >>> Subject: Re: [GoBGP-devel] MPLS label issue with VPNv4 routes >>> >>> Hi, >>> >>> 2018-01-31 0:02 GMT+09:00 SHAIKH, AMAN (AMAN) <asha...@research.att.com>: >>>> >>>> >>>>> As on my previous mail, sorry I don't know why this PR was not accepted... >>>> >>>> GoBGP had the feature to allocate vpn labels but it was removed. >>>> >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_osr >>>> g >>>> _g >>>> obgp_commit_c7653aa9d4276098a7a6b5ade5ffce5bf5d089e8&d=DwIFaQ&c=LFY >>>> Z >>>> -o >>>> 9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7V >>>> c >>>> 8Y >>>> RSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=MTpXR6wkh_EDImcmDx-f18aa4n >>>> h >>>> lT >>>> Pz1PrhPbJ-oXYI&e= >>>> >>>> I assume that there is a label allocation component out of GoBGP. >>>> For example, if you create MPLS VPN, you needs two types of labels, >>>> vpn label, and mpls label. >>>> GoBGP needs to work with ldpd to avoid using the same label. >>>> >>>> -> The VPN label needs to be allocated by GoBGP. And this label can >>>> -> be same >>>> as the PE (i.e., MPLS) label. It would be great if you can add the >>>> label allocation and assignment component back into GoBGP. Without >>>> this, it's impossible to use GoBGP with VPNv(4|6) and BGP-LU NLRIs. >>> >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_FRRo >>> u >>> ting_frr_blob_master_zebra_label-5Fmanager.c&d=DwIFaQ&c=LFYZ-o9_HUMe >>> M >>> TSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=yeOT6hlwHb >>> 4 >>> kNO7lFNfwiwLIf-w7HvCWRF0ciwQ4a6U&s=yYPnxj35T53xtHwdhn1kQ1X2NUdDnZHNw >>> B >>> NnmUMeQIo&e= >>> >>> >>> As frr does, label users (including bgpd) ask a label manager to >>> allocate / free a label. I think that it's the appropriate approach. >>> >>> --> Thanks for the pointer. Can GoBGP communicate with FRR/Zebra for >>> --> label >>> assignment instead of assigning a label of 0 to VPNv4 routes? One >>> possibility is to communicate with FRR/Zebra at the time of VRF >>> creation and deletion for label allocation and freeing respectively? >>> >>>> >>>> aman >>>> >>>> 2018-01-29 16:04 GMT+09:00 Iwase Yusuke <iwase.yusu...@gmail.com>: >>>>> Hi Aman, >>>>> >>>>> As on my previous mail, sorry I don't know why this PR was not accepted... >>>>> >>>>> But, your suggestion is reasonable to me. >>>>> How about the following patches? >>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_os >>>>> r >>>>> g_ >>>>> g >>>>> obgp_compare_master...iwaseyusuke-3Aserver-2DAuto-5FMPLS-5Flabel-5 >>>>> F >>>>> as >>>>> s >>>>> ignment-5Fon-5FVRF&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQf >>>>> O >>>>> Eo >>>>> C >>>>> VzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9agh >>>>> Z 6Z i hzSk&s=NNBfvxFq2jodV04XmJD6uWtmUTkXfltpjRFKYgUJ-sY&e= >>>>> >>>>> The first patch does not directly fix this issue, but is >>>>> convenient to update neighbor settings, and with the second one, >>>>> you can configure VRF like; >>>>> >>>>> # Configure VRFs on router "10.0.0.1" (r1) >>>>> r1> gobgp vrf add blue rd 65000:100 rt both 65000:100 gobgp vrf >>>>> r1> add red rd 65000:200 rt both 65000:200 gobgp neighbor update >>>>> r1> 10.0.0.2 vrf blue gobgp neighbor update 10.0.0.3 vrf red >>>>> >>>>> # Add a prefix on router "10.0.0.2" (r2) >>>>> r2> gobgp global rib -a ipv4 add 192.168.1.0/24 gobgp global rib >>>>> r2> -a >>>>> r2> ipv4 >>>>> Network Next Hop AS_PATH Age Attrs >>>>> *> 192.168.1.0/24 0.0.0.0 >>>>> 00:00:00 >>>>> [{Origin: ?}] >>>>> >>>>> # Add the same prefix on router "10.0.0.3" (r3) >>>>> r3> gobgp global rib -a ipv4 add 192.168.1.0/24 gobgp global rib >>>>> r3> -a >>>>> r3> ipv4 >>>>> Network Next Hop AS_PATH Age Attrs >>>>> *> 192.168.1.0/24 0.0.0.0 >>>>> 00:00:00 >>>>> [{Origin: ?}] >>>>> >>>>> # Show VPN routes on r1 >>>>> r1> gobgp global rib -a vpnv4 >>>>> Network Labels Next Hop AS_PATH Age >>>>> Attrs *> 65000:100:192.168.1.0/24 [1000] 10.0.0.2 >>>>> 00:00:00 [{Origin: ?} >>>>> {LocalPref: 100} {Extcomms: [65000:100]}] *> >>>>> 65000:200:192.168.1.0/24 [1001] 10.0.0.3 00:00:00 [{Origin: >>>>> ?} >>>>> {LocalPref: 100} {Extcomms: [65000:200]}] >>>>> >>>>> Thanks, >>>>> Iwase >>>>> >>>>> >>>>> >>>>> On 2018年01月27日 06:28, SHAIKH, AMAN (AMAN) wrote: >>>>>> >>>>>> Hi Iwase >>>>>> >>>>>> --> I looked at the PR in some detail. Seems quite reasonable to >>>>>> --> me in >>>>>> terms of changes. Do you know the reason why it was not accepted? >>>>>> >>>>>> FYI, the auto assignment feature seems to be posted, but not merged. >>>>>> (sorry, I don't know why...) >>>>>> >>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_o >>>>>> s >>>>>> rg >>>>>> _ >>>>>> gobgp_pull_366&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEo >>>>>> C >>>>>> Vz >>>>>> C >>>>>> hS_fiJdy8vxHF4_JM0AhcKK4Y&m=XsNqliUbM-wXJ4BIRg17Ql3I4zlbKtrslZXuw >>>>>> i iS S j0&s=BuzaMx-UPDZUk8TQkyyyrRJMDX5faq5YG3mVHMetuLs&e= >>>>>> >>>>>> thx >>>>>> aman >>>>>> >>>>>> ----------------------------------------------------------------- >>>>>> - >>>>>> -- >>>>>> - >>>>>> --------- Check out the vibrant tech community on one of the >>>>>> world's most engaging tech sites, Slashdot.org! >>>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__sdm.link_slas >>>>>> h >>>>>> do >>>>>> t >>>>>> &d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8v >>>>>> x >>>>>> HF >>>>>> 4 >>>>>> _JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=ZKSxl >>>>>> J kc a P-nUGEu2yJmVbKJfB2tr5-jz2ILYgjv300&e= >>>>>> _______________________________________________ >>>>>> gobgp-devel mailing list >>>>>> gobgp-devel@lists.sourceforge.net >>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.source >>>>>> f >>>>>> or >>>>>> g >>>>>> e.net_lists_listinfo_gobgp-2Ddevel&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicv >>>>>> j >>>>>> Ig >>>>>> & >>>>>> r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFk >>>>>> P >>>>>> q3 >>>>>> y >>>>>> BYho_aHr7X9aghZ6ZihzSk&s=aHmtUI0UsXL4J3DAQXvNeholruVqcnCoSMjhNN6s >>>>>> R >>>>>> Ws >>>>>> & >>>>>> e= >>>>>> >>>>> >>>>> ------------------------------------------------------------------ >>>>> - >>>>> -- >>>>> - >>>>> -------- Check out the vibrant tech community on one of the >>>>> world's most engaging tech sites, Slashdot.org! >>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__sdm.link_slash >>>>> d >>>>> ot >>>>> & >>>>> d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxH >>>>> F >>>>> 4_ >>>>> J >>>>> M0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=ZKSxlJkc >>>>> a >>>>> P- >>>>> n >>>>> UGEu2yJmVbKJfB2tr5-jz2ILYgjv300&e= >>>>> _______________________________________________ >>>>> gobgp-devel mailing list >>>>> gobgp-devel@lists.sourceforge.net >>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourcef >>>>> o >>>>> rg >>>>> e >>>>> .net_lists_listinfo_gobgp-2Ddevel&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjI >>>>> g >>>>> &r >>>>> = >>>>> I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3 >>>>> y >>>>> BY >>>>> h >>>>> o_aHr7X9aghZ6ZihzSk&s=aHmtUI0UsXL4J3DAQXvNeholruVqcnCoSMjhNN6sRWs& >>>>> e >>>>> = >>> >>> aman >>> -------------------------------------------------------------------- >>> - >>> --------- Check out the vibrant tech community on one of the world's >>> most engaging tech sites, Slashdot.org! >>> https://urldefense.proofpoint.com/v2/url?u=http-3A__sdm.link_slashdo >>> t >>> &d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF >>> 4 >>> _JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKiEgMSu1U&s=BBVDLw66 >>> 0 juZnrLPKS1kIFaB2_HV34rj6zDYJyZOe3U&e= >>> _______________________________________________ >>> gobgp-devel mailing list >>> gobgp-devel@lists.sourceforge.net >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourcefor >>> g >>> e.net_lists_listinfo_gobgp-2Ddevel&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg >>> & >>> r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G >>> 3 >>> l3bbd-0glNdqNKiEgMSu1U&s=P0epHjnmGV3uE28Rfi1Qg7FQVYzWUhc8nkqaq_br6iI >>> & >>> e= >>> > ---------------------------------------------------------------------- > -------- Check out the vibrant tech community on one of the world's > most engaging tech sites, Slashdot.org! > https://urldefense.proofpoint.com/v2/url?u=http-3A__sdm.link_slashdot& > d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_J > M0AhcKK4Y&m=TdGJjOKuBMLxHOPXehiGl4RRoFxfLc4RqJAkSHslcKg&s=8wrxv3qSSEZK > XvD16KqNTTT_0Mwc2J95BbEVCp0EiCM&e= > _______________________________________________ > gobgp-devel mailing list > gobgp-devel@lists.sourceforge.net > https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourceforge > .net_lists_listinfo_gobgp-2Ddevel&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r= > I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=TdGJjOKuBMLxHOPXehiGl4RR > oFxfLc4RqJAkSHslcKg&s=SoQIHnhhY7WMLVMHINZWoZVwQ0eM2U8WvcX_eFJpcSk&e= > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ gobgp-devel mailing list gobgp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gobgp-devel