Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mpls #342

Closed
wants to merge 19 commits into from
Closed

Mpls #342

wants to merge 19 commits into from

Conversation

donaldsharp
Copy link
Member

No description provided.

dslicenc and others added 19 commits April 6, 2017 09:43
Implement static label binding of a label to a prefix (FEC).

Note: Currently, only binding to a prefix is supported, the nexthop and/or
other parameters are not considered.  This was cherry-picked by hand from
an earlier mpls branch.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Implement interface that allows a client to register a FEC for obtaining
a label binding (in-label). Update client whenever the label binding is
updated and cleanup when client goes away.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Add information about AFI/SAFI to updates - received and sent.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Support install of labeled-unicast routes by a client. This would be
BGP, in order to install routes corresponding to AFI/SAFI 1/4 (IPv4)
or 2/4 (IPv6). Convert labeled-unicast routes into label forwarding
entries (i.e., transit LSPs) when there is a static label binding.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Internal and IANA definitions for labeled-unicast SAFI. Note that this SAFI
is specific to BGP and maps to the corresponding unicast SAFI in Zebra.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Implement support for activating the labeled-unicast address family in
BGP and relevant configuration for this address family.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Implement support for negotiating IPv4 or IPv6 labeled-unicast address
family, exchanging prefixes and installing them in the routing table, as
well as interactions with Zebra for FEC registration. This is the
implementation of RFC 3107.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Implement 'show' and 'clear' commands for the labeled-unicast address-family.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Implement BGP Prefix-SID IETF draft to be able to signal a labeled-unicast
prefix with a label index (segment ID). This makes it easier to deploy
global MPLS labels with BGP, even without other aspects of Segment Routing
implemented.

This patch implements configuration of the global label block (SRGB) and
configuration of a label-index for a network in BGP.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
…index attr

Implement BGP Prefix-SID IETF draft to be able to signal a labeled-unicast
prefix with a label index (segment ID). This makes it easier to deploy
global MPLS labels with BGP, even without other aspects of Segment Routing
implemented.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Implement BGP Prefix-SID IETF draft to be able to signal a labeled-unicast
prefix with a label index (segment ID). This makes it easier to deploy
global MPLS labels with BGP, even without other aspects of Segment Routing
implemented.

This patch implements the handling of the BGP-Prefix-SID Label Index
attribute. When received from a peer and the index is acceptable, the local
label is picked up from the SRGB and is programmed as the incoming label as
well as advertised to peers. If the index is not acceptable, no local label
is assigned. The outgoing label will always be the one advertised by the
downstream neighbor.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
With the some current bgp drafts the Attribute number has
surpassed 32.  Which is a bit unfortunate in that we keep
track of the attributes via a bitfield based on the attribute #.

For the moment since I am not aware of Attribute #'s being
greater than 64, convert the flag to 64 bit and allow the
bit shifting to know about it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The draft-ietf-idr-bgp-prefix-sid-04 specifies the label attribute
should be 40 not 30.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
flags is set but never used.  Since we
plan to use it in the future, make
it evident what is going on here.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Just make it one function call

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
Labeled-unicast updates were being sent with an ipv6 nexthop due to
not setting the mp_nexthop_len or nh_afi.  On the receive side, the
prefix length was being incorrectly determined and has been fixed.
Also the stream for bgp_label_buf was not created.  All resolved.

Ticket: CM-15260
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by:
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The function zebra_mpls_lsp_label_consistent needs
to be wrappered by HAVE_CUMULUS

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
@NetDEF-CI
Copy link
Collaborator

Continous Integration Result: FAILED

See below for issues.
CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/

This is a comment from an EXPERIMENTAL automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Get source and apply patch from patchwork: Successful

Building Stage: Failed

Debian8 amd64 build: Failed

Make failed for Debian8 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI008BLD/ErrorLog/log_make.txt)

  CC       bgp_debug.o
  CC       bgp_route.o
bgp_route.c:66:28: fatal error: bgpd/bgp_label.h: No such file or directory
 #include "bgpd/bgp_label.h"
                            ^
compilation terminated.
Makefile:887: recipe for target 'bgp_route.o' failed
make[2]: Leaving directory '/home/ci/cibuild.444/frr-source/bgpd'
make[2]: *** [bgp_route.o] Error 1

Debian8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI008BLD/config.status/config.status

FreeBSD11 amd64 build: Failed

Make failed for FreeBSD11 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI009BUILD/ErrorLog/log_make.txt)

n of `zebra_mpls_write_lsp_config'
zebra_mpls.o:/usr/home/ci/cibuild.444/frr-source/zebra/zebra_mpls.c:2846: first defined here
cc: error: linker command failed with exit code 1 (use -v to see invocation)

FreeBSD11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI009BUILD/config.status/config.status

OpenBSD60 amd64 build: Failed

Make failed for OpenBSD60 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI011BUILD/ErrorLog/log_make.txt)

  CC       bgp_debug.o
  CC       bgp_route.o
bgp_route.c:66:28: error: bgpd/bgp_label.h: No such file or directory
bgp_route.c: In function 'subgroup_announce_check':
bgp_route.c:1282: warning: implicit declaration of function 'bgp_labeled_safi'
bgp_route.c:1284: warning: implicit declaration of function 'bgp_adv_label'
bgp_route.c:1284: warning: initialization makes pointer from integer without a cast
bgp_route.c:1285: warning: implicit declaration of function 'bgp_is_valid_label'
bgp_route.c: In function 'bgp_process_main':

OpenBSD60 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI011BUILD/config.status/config.status

NetBSD6 amd64 build: Failed

Make failed for NetBSD6 amd64 build
see make log in attachment /browse/FRR-FRRPULLREQ-444/artifact/CI007BUILD/ErrorLog/log_make.txt
NetBSD6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI007BUILD/config.status/config.status

CentOS7 amd64 build: Failed

Make failed for CentOS7 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI005BUILD/ErrorLog/log_make.txt)

  CC       bgp_debug.o
  CC       bgp_route.o
bgp_route.c:66:28: fatal error: bgpd/bgp_label.h: No such file or directory
 #include "bgpd/bgp_label.h"
                            ^
compilation terminated.
make[2]: Leaving directory `/home/ci/cibuild.444/frr-source/bgpd'
make[2]: *** [bgp_route.o] Error 1
make[1]: Leaving directory `/home/ci/cibuild.444/frr-source'

CentOS7 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI005BUILD/config.status/config.status

Fedora24 amd64 build: Failed

Make failed for Fedora24 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI015BUILD/ErrorLog/log_make.txt)

  CC       bgp_debug.o
  CC       bgp_route.o
bgp_route.c:66:28: fatal error: bgpd/bgp_label.h: No such file or directory
 #include "bgpd/bgp_label.h"
                            ^
compilation terminated.
Makefile:897: recipe for target 'bgp_route.o' failed
make[2]: Leaving directory '/home/ci/cibuild.444/frr-source/bgpd'
make[2]: *** [bgp_route.o] Error 1

Fedora24 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI015BUILD/config.status/config.status

OmniOS amd64 build: Failed

Make failed for OmniOS amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI010BUILD/ErrorLog/log_make.txt)

ld: fatal: symbol 'zebra_mpls_cleanup_fecs_for_client' is multiply-defined:
	(file zebra_mpls.o type=FUNC; file zebra_mpls_null.o type=FUNC);
ld: fatal: file processing errors. No output written to .libs/zebra
collect2: error: ld returned 1 exit status
make[2]: *** [zebra] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

OmniOS amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI010BUILD/config.status/config.status

CentOS6 amd64 build: Failed

Make failed for CentOS6 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI006BUILD/ErrorLog/log_make.txt)

  CC       bgp_debug.o
  CC       bgp_route.o
bgp_route.c:66:28: error: bgpd/bgp_label.h: No such file or directory
bgp_route.c: In function subgroup_announce_check:
bgp_route.c:1282: warning: implicit declaration of function bgp_labeled_safi
make[2]: Leaving directory `/home/ci/cibuild.444/frr-source/bgpd'
make[1]: Leaving directory `/home/ci/cibuild.444/frr-source'
bgp_route.c:1284: warning: implicit declaration of function bgp_adv_label
bgp_route.c:1284: warning: initialization makes pointer from integer without a cast

CentOS6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI006BUILD/config.status/config.status

NetBSD7 amd64 build: Failed

Make failed for NetBSD7 amd64 build
see make log in attachment /browse/FRR-FRRPULLREQ-444/artifact/CI012BUILD/ErrorLog/log_make.txt
NetBSD7 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI012BUILD/config.status/config.status

FreeBSD9 amd64 build: Failed

Make failed for FreeBSD9 amd64 build
see make log in attachment /browse/FRR-FRRPULLREQ-444/artifact/CI004BUILD/ErrorLog/log_make.txt
FreeBSD9 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI004BUILD/config.status/config.status

Ubuntu1604 amd64 build: Failed

Ubuntu1604 amd64 build: Unknown Log <log_make_dist.txt>
URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI014BUILD/ErrorLog/log_make_dist.txt
Ubuntu1604 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI014BUILD/config.status/config.status
Ubuntu1604 amd64 build: No useful log found

Ubuntu1204 amd64 build: Failed

Make failed for Ubuntu1204 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI002BUILD/ErrorLog/log_make.txt)

  CC       bgp_debug.o
  CC       bgp_route.o
bgp_route.c:66:28: fatal error: bgpd/bgp_label.h: No such file or directory
compilation terminated.
make[2]: *** [bgp_route.o] Error 1
make[2]: Leaving directory `/home/ci/cibuild.444/frr-source/bgpd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ci/cibuild.444/frr-source'
make: *** [all] Error 2

Ubuntu1204 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI002BUILD/config.status/config.status

FreeBSD10 amd64 build: Failed

Make failed for FreeBSD10 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI003BUILD/ErrorLog/log_make.txt)

/usr/home/ci/cibuild.444/frr-source/zebra/zebra_mpls_null.c:97: multiple definition of `zebra_mpls_write_lsp_config'
zebra_mpls.o:/usr/home/ci/cibuild.444/frr-source/zebra/zebra_mpls.c:2846: first defined here
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
Stop.
make[2]: stopped in /usr/home/ci/cibuild.444/frr-source/zebra
*** Error code 1
Stop.
make[1]: stopped in /usr/home/ci/cibuild.444/frr-source

FreeBSD10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI003BUILD/config.status/config.status

Ubuntu1404 amd64 build: Failed

Make failed for Ubuntu1404 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-444/artifact/CI001BUILD/ErrorLog/log_make.txt)

  CC       bgp_debug.o
  CC       bgp_route.o
bgp_route.c:66:28: fatal error: bgpd/bgp_label.h: No such file or directory
 #include "bgpd/bgp_label.h"
                            ^
compilation terminated.
make[2]: Leaving directory `/home/ci/cibuild.444/frr-source/bgpd'
make[2]: *** [bgp_route.o] Error 1
make[1]: *** [all-recursive] Error 1

Ubuntu1404 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-444/artifact/CI001BUILD/config.status/config.status

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants