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

bgpd, zebra: auto assign labels to regular labeled-unicast prefixes #3327

Merged
merged 1 commit into from
Dec 20, 2018

Conversation

adeg
Copy link
Contributor

@adeg adeg commented Nov 14, 2018

Summary

This is the last missing piece to full BGP LU support. To this moment, bgpd (and zebra) supported auto label assignment only for prefixes leaked from VRFs to vpn and for MPLS SR prefixes. This adds auto label assignment to other route types in bgpd. The following enhancements have been made:

  • bgp_route.c:bgp_process_main_one() now sets implicit-null local_label to all local, aggregate and redistributed routes.
  • bgp_route.c:bgp_process_main_one() now will request a label from the label pool for any prefix that loses the label for some reason (for example, when the static label assignment config is removed)
  • bgp_label.c:bgp_reg_dereg_for_label() now requests labels from label pool for routes which have no associated label index
  • zebra_mpls.c:zebra_mpls_fec_register() now expects both label and label_index from the calling function, one of which must be set to MPLS_INVALID_LABEL or MPLS_INVALID_LABEL_INDEX, based on this it will decide how to register the provided FEC.

Components

[bgpd, zebra]

@adeg adeg mentioned this pull request Nov 14, 2018
2 tasks
@LabN-CI

This comment has been minimized.

@NetDEF-CI

This comment has been minimized.

@rwestphal rwestphal self-assigned this Nov 14, 2018
@LabN-CI

This comment has been minimized.

@NetDEF-CI

This comment has been minimized.

@LabN-CI

This comment has been minimized.

@NetDEF-CI

This comment has been minimized.

@adeg
Copy link
Contributor Author

adeg commented Nov 14, 2018

Whitespace issues fixed but I don't understand why there are complaints about lines longer than 80 characters. I have this limit marked in my IDE and also checked manually -- the lines that I have committed are under the 80 char limit.

Copy link
Member

@riw777 riw777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One really minor question which probably isn't a problem; this code looks fine to me. Will wait for @louberger to review.

bgpd/bgp_label.c Outdated Show resolved Hide resolved
@louberger
Copy link
Member

louberger commented Nov 26, 2018

checkpatch reports the following:
Report for bgp_label.c | 20 issues

< WARNING: quoted string split across lines
< #166: FILE: /tmp/f1-19742/bgp_label.c:166:
< WARNING: line over 80 characters
< #167: FILE: /tmp/f1-19742/bgp_label.c:167:
< WARNING: line over 80 characters
< #215: FILE: /tmp/f1-19742/bgp_label.c:215:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-19742/bgp_label.c:220:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-19742/bgp_label.c:223:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-19742/bgp_label.c:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-19742/bgp_label.c:229:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-19742/bgp_label.c:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-19742/bgp_label.c:237:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-19742/bgp_label.c:240:
Report for bgp_route.c | 8 issues

< WARNING: line over 80 characters
< #2274: FILE: /tmp/f1-19742/bgp_route.c:2274:
< WARNING: line over 80 characters
< #2277: FILE: /tmp/f1-19742/bgp_route.c:2277:
< WARNING: line over 80 characters
< #2278: FILE: /tmp/f1-19742/bgp_route.c:2278:
< WARNING: line over 80 characters
< #2281: FILE: /tmp/f1-19742/bgp_route.c:2281:
Report for zebra_mpls.c | 6 issues

< WARNING: line over 80 characters
< #1821: FILE: /tmp/f1-19742/zebra_mpls.c:1821:
< WARNING: quoted string split across lines
< #1843: FILE: /tmp/f1-19742/zebra_mpls.c:1843:
< WARNING: line over 80 characters
< #1844: FILE: /tmp/f1-19742/zebra_mpls.c:1844:
Report for zebra_mpls.h | 2 issues

< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-19742/zebra_mpls.h:203:

bgpd/bgp_label.c Outdated Show resolved Hide resolved
bgpd/bgp_label.c Show resolved Hide resolved
bgpd/bgp_label.c Outdated Show resolved Hide resolved
@LabN-CI

This comment has been minimized.

@NetDEF-CI

This comment has been minimized.

@adeg
Copy link
Contributor Author

adeg commented Nov 28, 2018

@riw777 @louberger Thank you both for your input, all your notes have been addressed.

Copy link
Member

@rwestphal rwestphal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome stuff, I tested this here and it worked smoothly.

The only problem I found is that bgpd is allocating labels dynamically even for FECs that have static label bindings configured (mpls label bind ...). Shouldn't the static labels take precedence over auto-assigned labels?

Please check more review comments below (mostly style issues).

zebra/zebra_errors.h Show resolved Hide resolved
zebra/zebra_mpls.c Show resolved Hide resolved
lib/zebra.h Outdated Show resolved Hide resolved
bgpd/bgp_route.c Outdated Show resolved Hide resolved
bgpd/bgp_label.h Outdated Show resolved Hide resolved
bgpd/bgp_label.c Outdated Show resolved Hide resolved
bgpd/bgp_label.c Outdated Show resolved Hide resolved
bgpd/bgp_labelpool.h Outdated Show resolved Hide resolved
@eqvinox
Copy link
Contributor

eqvinox commented Dec 4, 2018

@louberger please recheck on your ❌ :)

@adeg can you fix the style issues pointed out by @rwestphal?

@eqvinox eqvinox added the submitter action required The author/submitter needs to do something (fix, rebase, add info, etc.) label Dec 4, 2018
@louberger
Copy link
Member

louberger commented Dec 4, 2018 via email

@adeg
Copy link
Contributor Author

adeg commented Dec 10, 2018

The only problem I found is that bgpd is allocating labels dynamically even for FECs that have static label bindings configured (mpls label bind ...). Shouldn't the static labels take precedence over auto-assigned labels?

@rwestphal I haven't been able to reproduce this (and also do not see how this could be happening if I read the code). I have tested this with a couple mpls label bind statements for some prefixes and could see that FECs are registered with statically defined labels, and the labels automatically obtained previously are released. Here's the corresponding log:

leaf-7# sh mpls fec
192.168.122.1/32
  Label: 17
  Client list: bgp(fd 20)
leaf-7(config)# mpls label bind 192.168.122.1/32 1017
zebra[31701]: Update fec 192.168.122.1/32 new label 1017
zebra[31701]: Update client bgp
zebra[31701]: Del LSP in-label 17 type 3 nexthop 10.110.4.254 flags 0x16
zebra[31701]: Alloc LSP in-label 1017
zebra[31701]: Add LSP in-label 1017 type 3 nexthop 10.110.4.254 out-label 3
zebra[31701]: Process LSP in-label 17 oldbest 10.110.4.254 newbest NULL flags 0x3 ecmp# 0
zebra[31701]: Free LSP in-label 17 flags 0x0
zebra[31701]: Process LSP in-label 1017 oldbest NULL newbest 10.110.4.254 flags 0x1 ecmp# 1

Could you please share the config you've been using when the described behaviour was observed?

@adeg
Copy link
Contributor Author

adeg commented Dec 10, 2018

@rwestphal I have pushed all fixes to the issues pointed out by yourself in the recent code review in a separate commit for better visibility. Please check and let me know if everything is in order. If the PR is ready for merging, I will squash the fixes commit into the base one and then you can merge.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 10, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3327 ee58350
Date 12/10/2018
Start 14:10:46
Finish 14:34:12
Run-Time 23:26
Total 1816
Pass 1816
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-12-10-14:10:46.txt
Log autoscript-2018-12-10-14:11:26.log.bz2

For details, please contact louberger

@NetDEF-CI

This comment has been minimized.

@NetDEF-CI

This comment has been minimized.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 10, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3327 864346b
Date 12/10/2018
Start 15:10:46
Finish 15:34:12
Run-Time 23:26
Total 1813
Pass 1813
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-12-10-15:10:46.txt
Log autoscript-2018-12-10-15:11:27.log.bz2

For details, please contact louberger

@rwestphal
Copy link
Member

@adeg thanks for the updates! The changes look good, feel free to squash the fixes into the original commit.

Could you please share the config you've been using when the described behaviour was observed?

Sure, here's my BGP LU test topology: https://gist.github.com/rwestphal/9707df2ff6c2073c8b46a23e7d603859

Here's the output of some "show" commands in the rt2 router:

debian# show mpls table
 Inbound                            Outbound
   Label     Type          Nexthop     Label
--------  -------  ---------------  --------
      16      BGP         10.0.1.1  implicit-null
      17      BGP  fe80::488d:b1ff:feb5:8fb9  implicit-null
      18      BGP         10.0.2.4  implicit-null
      19      BGP         10.0.2.3  implicit-null
                                     
debian#                     
debian# show mpls fec
1.1.1.1/32
  Label: 16
  Client list: bgp(fd 17)
2.2.2.2/32
  Label: 202
3.3.3.3/32
  Label: 19
  Client list: bgp(fd 17)
4.4.4.4/32
  Label: 18
  Client list: bgp(fd 17)
2001:db8:1000::1/128
  Label: 17
  Client list: bgp(fd 17)
2001:db8:1000::2/128
  Label: 252
2001:db8:1000::3/128
  Label: 253
2001:db8:1000::4/128
  Label: 254
debian# 
debian# show bgp ipv4 unicast
BGP table version is 4, local router ID is 10.0.2.2, vrf id 0
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
       
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       10.0.1.1                 0    100      0 i
*> 2.2.2.2/32       0.0.0.0                  0         32768 i
*>i3.3.3.3/32       10.0.2.3                 0    100      0 i
*>i4.4.4.4/32       10.0.2.4                 0    100      0 i

Displayed  4 routes and 4 total paths

debian# show bgp ipv4 unicast 1.1.1.1/32         
BGP routing table entry for 1.1.1.1/32           
Local label: 16                      
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.0.1.1 10.0.2.3 10.0.2.4                                 
  Local                                                                        
    10.0.1.1 from 10.0.1.1 (10.0.1.1)                       
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Remote label: 3                          
      Last update: Mon Dec 17 11:03:34 2018
                                                                 
debian#                                                       
debian# show bgp ipv4 unicast 2.2.2.2/32                      
BGP routing table entry for 2.2.2.2/32                        
Local label: 3                                                
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.0.1.1 10.0.2.3 10.0.2.4
  Local                                 
    0.0.0.0 from 0.0.0.0 (10.0.2.2)   
      Origin IGP, metric 0, weight 32768, valid, sourced, local, best
      Last update: Mon Dec 17 11:03:32 2018 
                                     
debian#                     
debian# show bgp ipv4 unicast 3.3.3.3/32
BGP routing table entry for 3.3.3.3/32
Local label: 19                                                 
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:      
  10.0.1.1 10.0.2.3 10.0.2.4
  Local
    10.0.2.3 from 10.0.2.3 (10.0.2.3)   
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Remote label: 3
      Last update: Mon Dec 17 11:03:34 2018 
                                     
debian#                     
debian# show bgp ipv4 unicast 4.4.4.4/32
BGP routing table entry for 4.4.4.4/32
Local label: 18                                                      
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.0.1.1 10.0.2.3 10.0.2.4
  Local                                 
    10.0.2.4 from 10.0.2.4 (10.0.2.4) 
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Remote label: 3                       
      Last update: Mon Dec 17 11:03:34 2018
                            
debian# show running-config  
Building configuration...    
                                       
Current configuration: 
[snip]
mpls label bind 1.1.1.1/32 16
mpls label bind 2.2.2.2/32 202
mpls label bind 3.3.3.3/32 19
mpls label bind 4.4.4.4/32 18
mpls label bind 2001:db8:1000::1/128 17
mpls label bind 2001:db8:1000::2/128 252
mpls label bind 2001:db8:1000::3/128 253
mpls label bind 2001:db8:1000::4/128 254
mpls label global-block 16 1000
[snip]

As it can be seen by the show mpls table output, the auto-assigned labels were installed in the kernel even though zebra had static labels configured for the same FECs. The dynamic labels even made their way into the running configuration, overwriting the static labels configured in bgpd.conf. Maybe this problem doesn't happen when the static labels are configured after the dynamic labels are assigned, that would explain why you couldn't reproduce this problem.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 18, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3327 54a50d3
Date 12/18/2018
Start 06:10:52
Finish 06:34:25
Run-Time 23:33
Total 1816
Pass 1816
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-12-18-06:10:52.txt
Log autoscript-2018-12-18-06:11:36.log.bz2

For details, please contact louberger

@NetDEF-CI

This comment has been minimized.

@adeg
Copy link
Contributor Author

adeg commented Dec 18, 2018

CI:rerun

@NetDEF-CI

This comment has been minimized.

@NetDEF-CI
Copy link
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6237/

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.


Warnings Generated during build:

Checkout code: Successful with additional warnings:

Report for bgp_label.c | 2 issues
===============================================
< WARNING: Block comments use a trailing */ on a separate line
< #310: FILE: /tmp/f1-28557/bgp_label.c:310:
Report for zebra_errors.c | 4 issues
===============================================
< WARNING: line over 80 characters
< #91: FILE: /tmp/f1-28557/zebra_errors.c:91:
< WARNING: line over 80 characters
< #97: FILE: /tmp/f1-28557/zebra_errors.c:97:

Warnings Generated during build:

Debian 8 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Debian 8 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6237/artifact/CI008BLD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 16.04 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 16.04 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6237/artifact/CI014BUILD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 18.04 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 18.04 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6237/artifact/U1804AMD64/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 4 tags overridden (3 warnings, 1 info)

Debian 9 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Debian 9 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6237/artifact/CI021BUILD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 14.04 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 14.04 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6237/artifact/CI001BUILD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 16.04 i386 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 16.04 i386 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6237/artifact/U1604I386/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

CLANG Static Analyzer Summary

  • Github Pull Request 3327, comparing to Git base SHA f944fe9

No Changes in Static Analysis warnings compared to base

@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 20, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3327 2cf1866
Date 12/20/2018
Start 02:13:42
Finish 02:38:11
Run-Time 24:29
Total 1816
Pass 1816
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-12-20-02:13:42.txt
Log autoscript-2018-12-20-02:15:27.log.bz2

For details, please contact louberger

…n BGP labeled unicast

This commit is the last missing piece to complete BGP LU support in bgpd. To this moment, bgpd (and zebra) supported auto label assignment only for prefixes leaked from VRFs to vpn and for MPLS SR prefixes. This adds auto label assignment to other routes types in bgpd. The following enhancements have been made:
* bgp_route.c:bgp_process_main_one() now sets implicit-null local_label to all local, aggregate and redistributed routes.
* bgp_route.c:bgp_process_main_one() now will request a label from the label pool for any prefix that loses the label for some reason (for example, when the static label assignment config is removed)
* bgp_label.c:bgp_reg_dereg_for_label() now requests labels from label pool for routes which have no associated label index
* zebra_mpls.c:zebra_mpls_fec_register() now expects both label and label_index from the calling function, one of which must be set to MPLS_INVALID_LABEL or MPLS_INVALID_LABEL_INDEX, based on this it will decide how to register the provided FEC.

Signed-off-by: Anton Degtyarev <anton@cumulusnetworks.com>
@adeg
Copy link
Contributor Author

adeg commented Dec 20, 2018

Squashed all code review commits into the base one for merging into master.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 20, 2018

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/3327 57592a5
Date 12/20/2018
Start 07:47:29
Finish 08:11:55
Run-Time 24:26
Total 1813
Pass 1813
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2018-12-20-07:47:29.txt
Log autoscript-2018-12-20-07:49:12.log.bz2

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6255/

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.


Warnings Generated during build:

Checkout code: Successful with additional warnings:

Report for bgp_label.c | 2 issues
===============================================
< WARNING: Block comments use a trailing */ on a separate line
< #310: FILE: /tmp/f1-11098/bgp_label.c:310:
Report for zebra_errors.c | 4 issues
===============================================
< WARNING: line over 80 characters
< #91: FILE: /tmp/f1-11098/zebra_errors.c:91:
< WARNING: line over 80 characters
< #97: FILE: /tmp/f1-11098/zebra_errors.c:97:

Warnings Generated during build:

Debian 9 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Debian 9 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6255/artifact/CI021BUILD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 16.04 i386 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 16.04 i386 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6255/artifact/U1604I386/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Debian 8 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Debian 8 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6255/artifact/CI008BLD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 14.04 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 14.04 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6255/artifact/CI001BUILD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 16.04 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 16.04 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6255/artifact/CI014BUILD/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 3 tags overridden (3 warnings)

Ubuntu 18.04 amd64 build: Successful with additional warnings:

Debian Package lintian failed for Ubuntu 18.04 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-6255/artifact/U1804AMD64/ErrorLog/log_lintian.txt)

W: frr: package-name-doesnt-match-sonames libfrr0 libfrrospfapiclient0
N: 4 tags overridden (3 warnings, 1 info)

CLANG Static Analyzer Summary

  • Github Pull Request 3327, comparing to Git base SHA bbfaa70
  • Base image data for Git bbfaa70 does not exist - compare skipped

@rwestphal rwestphal merged commit 96def26 into FRRouting:master Dec 20, 2018
@rwestphal
Copy link
Member

Thanks for this great work!

@adeg adeg deleted the feature/bgp-lu-auto-labels branch December 21, 2018 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
submitter action required The author/submitter needs to do something (fix, rebase, add info, etc.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants