Hi Aman,

Thanks for your confirmation!

> What's next? Do you plan to submit a pull request so that your patch can
> become part of the master branch?

Hmmm... Label allocation feature might be able to submit them as a PR, but for
the use-case of the MPLS VPN, I guess it is not yet enough...

Thanks,
Iwase


On 2018年02月07日 23:16, SHAIKH, AMAN  (AMAN) wrote:

Hi Iwase

Thanks for the explanation. That's exactly what I was suggesting. I'm glad it's 
part of your patch.

What's next? Do you plan to submit a pull request so that your patch can become 
part of the master branch?

thanks again for working on this so diligently,
aman

-----Original Message-----
From: Iwase Yusuke [mailto:iwase.yusu...@gmail.com]
Sent: Tuesday, February 6, 2018 6:25 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,

Oops, I had put another project's mail address on "reply-to".
Sorry, please ignore it.

  > I have a question though. If the code is able to request a new MPLS allocation 
 > from Zebra when range-size is 1, what would it take to make it more generic?
  > By generic, I mean that for any mpls-label-range-size, the code requests an  
> MPLS allocation when it runs out of existing chunk of labels?

I should have more explained more clearly.
This patch can request labels when running out the allocated chunk of labels.
I mean if "mpls-label-range-size = 1" makes GoBGP to "always" request a new 
label because the request chunk size is 1.
If you specify "mpls-label-range-size" to other than 1, GoBGP will request a 
new chunk of labels with the given size.
e.g.) with "mpls-label-range-size = 3"
    create VRF_A ---> request 3 labels ---> label=16 (for example)
    create VRF_B ---> label=17
    delete VRF_A ---> label=16 is released
    create VRF_C ---> label=16
    create VRF_D ---> label=18
    create VRF_E ---> request 3 labels ---> label=19
    ...

Thanks,
Iwase


On 2018年02月07日 00:55, SHAIKH, AMAN  (AMAN) wrote:

Thanks Iwase for working on this. I understand this makes things more 
complicated, but I appreciate the changes you have made. I have a question 
though. If the code is able to request a new MPLS allocation from Zebra when 
range-size is 1, what would it take to make it more generic? By generic, I mean 
that for any mpls-label-range-size, the code requests an MPLS allocation when 
it runs out of existing chunk of labels?

thx
aman

PS: I am yet to try out your changes, but hope to do it later today.



-----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_iwasey
usuke_gobgp_compare_master...iwaseyusuke-3Azclient-2DEnable-5Fto-5Freq
uest-5FMPLS-5Flabel-5Frange&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL
83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=TdGJjOKuBMLxHOPXehiGl4RRoFxfLc
4RqJAkSHslcKg&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-5
F
MPLS-5Flabel-5Frange&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfO
E
oCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKi
E 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_FRRo
u
t
ing_frr_issues_1207&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfO
E
o
CVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKi
E 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_os
r
g
_g
obgp_commit_c7653aa9d4276098a7a6b5ade5ffce5bf5d089e8&d=DwIFaQ&c=LF
Y
Z
-o
9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7
V
c
8Y
RSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=MTpXR6wkh_EDImcmDx-f18aa4
n
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_FRR
o
u
ting_frr_blob_master_zebra_label-5Fmanager.c&d=DwIFaQ&c=LFYZ-o9_HUM
e
M
TSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=yeOT6hlwH
b
4
kNO7lFNfwiwLIf-w7HvCWRF0ciwQ4a6U&s=yYPnxj35T53xtHwdhn1kQ1X2NUdDnZHN
w
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_o
s
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_2UmL83HQ
f
O
Eo
C
VzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9ag
h 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_2UmL83HQfOE
o
C
Vz
C
hS_fiJdy8vxHF4_JM0AhcKK4Y&m=XsNqliUbM-wXJ4BIRg17Ql3I4zlbKtrslZXu
w 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_sla
s
h
do
t
&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8
v
x
HF
4
_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=ZKSx
l 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.sourc
e
f
or
g
e.net_lists_listinfo_gobgp-2Ddevel&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQic
v
j
Ig
&
r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjF
k
P
q3
y
BYho_aHr7X9aghZ6ZihzSk&s=aHmtUI0UsXL4J3DAQXvNeholruVqcnCoSMjhNN6
s
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_slas
h
d
ot
&
d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vx
H
F
4_
J
M0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq3yBYho_aHr7X9aghZ6ZihzSk&s=ZKSxlJk
c
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.source
f
o
rg
e
.net_lists_listinfo_gobgp-2Ddevel&d=DwIFaQ&c=LFYZ-o9_HUMeMTSQicvj
I
g
&r
=
I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=7Vc8YRSyefU_kBjFkPq
3
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_slashd
o
t
&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=I_2UmL83HQfOEoCVzChS_fiJdy8vxH
F
4
_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0G3l3bbd-0glNdqNKiEgMSu1U&s=BBVDLw6
6
0 juZnrLPKS1kIFaB2_HV34rj6zDYJyZOe3U&e=
_______________________________________________
gobgp-devel mailing list
gobgp-devel@lists.sourceforge.net
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourcefo
r
g
e.net_lists_listinfo_gobgp-2Ddevel&d=DwIDaQ&c=LFYZ-o9_HUMeMTSQicvjI
g
&
r=I_2UmL83HQfOEoCVzChS_fiJdy8vxHF4_JM0AhcKK4Y&m=a8uZ5z9JfpkdyduLAq0
G
3
l3bbd-0glNdqNKiEgMSu1U&s=P0epHjnmGV3uE28Rfi1Qg7FQVYzWUhc8nkqaq_br6i
I
&
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=8wrxv3qSSEZ
K
XvD16KqNTTT_0Mwc2J95BbEVCp0EiCM&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=TdGJjOKuBMLxHOPXehiGl4R
R
oFxfLc4RqJAkSHslcKg&s=SoQIHnhhY7WMLVMHINZWoZVwQ0eM2U8WvcX_eFJpcSk&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=VghQHBPegbSJzmJCR-T-2YI2T4swV1WvtE4rZcxeX9w&s=gGdWttSvlFbR
f7Xn8OdJrISkAWsv8Daq5z6G6WXnT-4&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=VghQHBPegbSJzmJCR-T-2YI2
T4swV1WvtE4rZcxeX9w&s=IeBS1wWRFsoac7r0eLb4Wl-t4lDmnIv5_uUnp0I6M8M&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


------------------------------------------------------------------------------
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