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

Reply via email to