Hi Aman,

Hmmmm...

I didn't understand the mechanism of VRFs on FRR and how to configure VRFs for
the MPLS routing on FRR, so the following is just guessing...
If need to install any route into the specific VRF on Zebra, GoBGP should send
Zebra message with VRF ID of "Zebra side". Currently, GoBGP assigns a new VRF ID
independently from Zebra's assignment.

Current:
      GoBGP              Zebra
AddVrf  |                  |
------->| Request Labels   |
        |----------------->|
        | Allocated Labels |
        |<-----------------|
        |                  |
AddPath |                  |
------->| Add Route with   |
        | "GoBGP's" VRF ID |
        |----------------->| !!No such VRF ID!!
        |                  |

Required:
      GoBGP              Zebra
        |                  | Add VRF (via vtysh?)
        | Call AddVrf with |<--------------------
        | "Zebra's" VRF ID |
        |<-----------------|
        | Request Labels   |
        |----------------->|
        | Allocated Labels |
New VRF |<-----------------|
        |                  |
AddPath |                  |
------->| Add Route with   |
        | "Zebra's" VRF ID |
        |----------------->|
        |                  |


Thanks,
Iwase


On 2018年02月07日 08:26, SHAIKH, AMAN  (AMAN) wrote:

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


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