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_gobgp_compare_master...iwaseyusuke-3Azclient-2DEnable-5Fto-5Frequest-5FMPLS-5Flabel-5Frange&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKiEgMSu1U&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_FRRout > ing_frr_issues_1207&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEo > CVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKiEg > 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_osrg >>> _g >>> obgp_commit_c7653aa9d4276098a7a6b5ade5ffce5bf5d089e8&d=DwIFaQ&c=LFYZ >>> -o >>> 9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc >>> 8Y >>> RSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=MTpXR6wkh_EDImcmDx-f18aa4nh >>> 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_FRRou >> ting_frr_blob_master_zebra_label-5Fmanager.c&d=DwIFaQ&c=LFYZ-o9_HUMeM >> TSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=yeOT6hlwHb4 >> kNO7lFNfwiwLIf-w7HvCWRF0ciwQ4a6U&s=yYPnxj35T53xtHwdhn1kQ1X2NUdDnZHNwB >> 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_osr >>>> g_ >>>> g >>>> obgp_compare_master...iwaseyusuke-3Aserver-2DAuto-5FMPLS-5Flabel-5F >>>> as >>>> s >>>> ignment-5Fon-5FVRF&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfO >>>> Eo >>>> C >>>> VzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9aghZ >>>> 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 add >>>> r1> 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 -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 -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_os >>>>> rg >>>>> _ >>>>> gobgp_pull_366&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoC >>>>> Vz >>>>> C >>>>> hS_fiJdy8vxHF4_JM0AhcKK4Y&m=XsNqliUbM-wXJ4BIRg17Ql3I4zlbKtrslZXuwi >>>>> 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_slash >>>>> do >>>>> t >>>>> &d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vx >>>>> HF >>>>> 4 >>>>> _JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=ZKSxlJ >>>>> 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.sourcef >>>>> or >>>>> g >>>>> e.net_lists_listinfo_gobgp-2Ddevel&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvj >>>>> Ig >>>>> & >>>>> r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkP >>>>> q3 >>>>> y >>>>> BYho_aHr7X9aghZ6ZihzSk&s=aHmtUI0UsXL4J3DAQXvNeholruVqcnCoSMjhNN6sR >>>>> 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_slashd >>>> ot >>>> & >>>> d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF >>>> 4_ >>>> J >>>> M0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=ZKSxlJkca >>>> P- >>>> n >>>> UGEu2yJmVbKJfB2tr5-jz2ILYgjv300&e= >>>> _______________________________________________ >>>> gobgp-devel mailing list >>>> gobgp-devel@lists.sourceforge.net >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourcefo >>>> rg >>>> e >>>> .net_lists_listinfo_gobgp-2Ddevel&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg >>>> &r >>>> = >>>> I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3y >>>> 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_slashdot >> &d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4 >> _JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKiEgMSu1U&s=BBVDLw660 >> juZnrLPKS1kIFaB2_HV34rj6zDYJyZOe3U&e= >> _______________________________________________ >> gobgp-devel mailing list >> gobgp-devel@lists.sourceforge.net >> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourceforg >> e.net_lists_listinfo_gobgp-2Ddevel&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg& >> r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3 >> l3bbd-0glNdqNKiEgMSu1U&s=P0epHjnmGV3uE28Rfi1Qg7FQVYzWUhc8nkqaq_br6iI& >> 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