[FRR]: Patch for kernel level graceful restart. #3621
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Original Patch in FRR master:
FRRouting/frr#4301
- What I did
Added Patch for FRR Master PR 4301.
- How I did it
sonic-net/SONiC#377
- How to verify it
Set -K option in daemons.conf file and restart FRR.
Run fib_warm_restart test case.
Test Results:
Test 0: Set The timer -K 45:
COde diff to test:
case 'K':
zlog_err("PC before atoi graceful_restart=%d optarg=%s\n",graceful_restart, optarg);
graceful_restart = atoi(optarg);
zlog_err("PC after atoi graceful_restart=%d optarg=%s\n",graceful_restart, optarg);
break;
Logs:
Exiting from the script
Starting Frr daemons (prio:10):. zebra2019/09/17 19:08:05 unknown: PC before atoi graceful_restart=0 optarg=45
2019/09/17 19:08:05 unknown: PC after atoi graceful_restart=45 optarg=45
Config warm_restart:’
admin@falco-test-dut01:
$ sudo config warm_restart enable bgp$ sudo config warm_restart bgp_timer 60admin@falco-test-dut01:
Test 1; APPDB routes recovered after restart [No changes in route]
Routes before restart:
127.0.0.1:6379> keys ROUTE_TABLE:172*
Sep 17 19:26:49.172904 falco-test-dut01 NOTICE bgp#fpmsyncd: :- getWarmStartTimer: Getting warmStartTimer for docker: bgp, app: bgp, value: 60
Sep 17 19:26:49.173688 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Initiating AppDB restoration process for bgp application.
Sep 17 19:26:49.180990 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Received 63 records from AppDB for bgp application.
Sep 17 19:26:49.181157 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to restored
Sep 17 19:26:49.181240 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Completed AppDB restoration process for bgp application.
Sep 17 19:26:49.567164 falco-test-dut01 NOTICE ZTP: Retrying to get the Bootstrap script URL...
Sep 17 19:27:19.570402 falco-test-dut01 NOTICE ZTP: Retrying to get the Bootstrap script URL...
Sep 17 19:27:49.181435 falco-test-dut01 NOTICE bgp#fpmsyncd: :- main: Warm-Restart timer expired.
Sep 17 19:27:49.181892 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart: Initiating reconciliation process for bgp application.
Sep 17 19:27:49.183877 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to reconciled
Sep 17 19:27:49.183877 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart: Concluded reconciliation process for bgp application.
admin@falco-test-dut01:
$ date$ sudo redis-cli keys ROUTE_TABLE:172*Tue Sep 17 19:32:18 UTC 2019
admin@falco-test-dut01:
Test 2: Deletion in Routes by bringing one interface down during FRR restart:
Before restart:
admin@falco-test-dut01:~$ sudo redis-cli keys ROUTE_TABLE:172*
admin@falco-test-dut01:~$
Routes from Ethernet124
B> 172.16.16.0/32 [20/0] via 10.0.0.63, Ethernet124, 00:07:48 B> 172.16.16.1/32 [20/0] via 10.0.0.63, Ethernet124, 00:07:48
B> 172.16.16.2/32 [20/0] via 10.0.0.63, Ethernet124, 00:07:48 B> 172.16.16.3/32 [20/0] via 10.0.0.63, Ethernet124, 00:07:48
B>* 172.16.16.4/32 [20/0] via 10.0.0.63, Ethernet124, 00:07:48
admin@falco-test-dut01:
$ date$ sudo service bgp stopTue Sep 17 19:35:06 UTC 2019
admin@falco-test-dut01:
admin@falco-test-dut01:~$ date
Tue Sep 17 19:35:22 UTC 2019
admin@falco-test-dut01:
$ sudo config interface shutdown Ethernet124$admin@falco-test-dut01:
admin@falco-test-dut01:
$ sudo service bgp start$ dateadmin@falco-test-dut01:
Tue Sep 17 19:36:05 UTC 2019
Sep 17 19:36:09.314139 falco-test-dut01 NOTICE bgp#fpmsyncd: :- checkWarmStart: bgp doing warm start, restore count 2
Sep 17 19:36:09.314325 falco-test-dut01 NOTICE bgp#fpmsyncd: :- checkAndStart: Initializing Warm-Restart cycle for bgp application.
Sep 17 19:36:09.314409 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to initialized
Sep 17 19:36:09.314690 falco-test-dut01 NOTICE bgp#fpmsyncd: :- getWarmStartTimer: Getting warmStartTimer for docker: bgp, app: bgp, value: 60
Sep 17 19:36:09.314957 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Initiating AppDB restoration process for bgp application.
Sep 17 19:36:09.321162 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Received 63 records from AppDB for bgp application.
Sep 17 19:36:09.321496 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to restored
Sep 17 19:36:09.321622 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Completed AppDB restoration process for bgp application.
Sep 17 19:36:19.633191 falco-test-dut01 NOTICE ZTP: Retrying to get the Bootstrap script URL...
Sep 17 19:36:49.636558 falco-test-dut01 NOTICE ZTP: Retrying to get the Bootstrap script URL...
Sep 17 19:37:09.321642 falco-test-dut01 NOTICE bgp#fpmsyncd: :- main: Warm-Restart timer expired.
Sep 17 19:37:09.321642 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart: Initiating reconciliation process for bgp application.
Sep 17 19:37:09.321822 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry fc00::7c/126 { nexthop: | ifname: Ethernet124 }
Sep 17 19:37:09.322070 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 172.16.16.3 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:37:09.322189 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 20ac:1010:0:4::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:37:09.322272 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 172.16.16.2 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:37:09.322436 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 10.0.0.62/31 { nexthop: | ifname: Ethernet124 }
Sep 17 19:37:09.322517 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 172.16.16.1 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:37:09.323004 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 172.16.16.4 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:37:09.323399 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 20ac:1010:0:2::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:37:09.323837 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 20ac:1010::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:37:09.324195 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 20ac:1010:0:3::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:37:09.324472 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 100.1.0.32 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:37:09.324565 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 20ac:1010:0:1::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:37:09.324724 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 172.16.16.0 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:37:09.324807 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: deleting stale entry 2064💯:20 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:37:09.325474 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to reconciled
Sep 17 19:37:09.325474 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart: Concluded reconciliation process for bgp application.
Sep 17 19:37:09.333668 falco-test-dut01 NOTICE swss#orchagent: :- removeNeighbor: Removed next hop 10.0.0.63 on Ethernet124
Sep 17 19:37:09.334205 falco-test-dut01 NOTICE swss#orchagent: :- removeNeighbor: Removed neighbor 52:54:00:c7:69:59 on Ethernet124
Sep 17 19:37:09.334617 falco-test-dut01 NOTICE swss#orchagent: :- removeNeighbor: Removed next hop fc00::7e on Ethernet124
Sep 17 19:37:09.336408 falco-test-dut01 NOTICE swss#orchagent: :- removeNeighbor: Removed neighbor 52:54:00:c7:69:59 on Ethernet124
admin@falco-test-dut01:
$ date$ sudo redis-cli keys ROUTE_TABLE:172*Tue Sep 17 19:39:17 UTC 2019
admin@falco-test-dut01:
Kernel routes after reconciliation:
admin@falco-test-dut01:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, P - PIM, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
> - selected route, * - FIB route
S 0.0.0.0/0 [200/0] via 172.25.11.1 inactive, 00:04:18
S> 0.0.0.0/0 [1/20] via 172.25.11.1, eth0, 00:04:19 C> 10.0.0.56/31 is directly connected, Ethernet112, 00:04:19
C> 10.0.0.58/31 is directly connected, Ethernet116, 00:04:19 C> 10.0.0.60/31 is directly connected, Ethernet120, 00:04:19
C> 10.1.0.1/32 is directly connected, lo, 00:04:19 C> 10.1.0.32/32 is directly connected, lo, 00:04:19
B> 100.1.0.29/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16 B> 100.1.0.30/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16
B> 100.1.0.31/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16 B> 172.16.13.0/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16
B> 172.16.13.1/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16 B> 172.16.13.2/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16
B> 172.16.13.3/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16 B> 172.16.13.4/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16
B> 172.16.14.0/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16 B> 172.16.14.1/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16
B> 172.16.14.2/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16 B> 172.16.14.3/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16
B> 172.16.14.4/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16 B> 172.16.15.0/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16
B> 172.16.15.1/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16 B> 172.16.15.2/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16
B> 172.16.15.3/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16 B> 172.16.15.4/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16
C>* 172.25.11.0/24 is directly connected, eth0, 00:04:19
Test 3: Addition in Routes by bringing one interface up during FRR restart:
Routes before reconciliation:
admin@falco-test-dut01:
$ date$ sudo redis-cli keys ROUTE_TABLE:172*Tue Sep 17 19:39:17 UTC 2019
admin@falco-test-dut01:
admin@falco-test-dut01:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, P - PIM, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
> - selected route, * - FIB route
S 0.0.0.0/0 [200/0] via 172.25.11.1 inactive, 00:04:18
S> 0.0.0.0/0 [1/20] via 172.25.11.1, eth0, 00:04:19 C> 10.0.0.56/31 is directly connected, Ethernet112, 00:04:19
C> 10.0.0.58/31 is directly connected, Ethernet116, 00:04:19 C> 10.0.0.60/31 is directly connected, Ethernet120, 00:04:19
C> 10.1.0.1/32 is directly connected, lo, 00:04:19 C> 10.1.0.32/32 is directly connected, lo, 00:04:19
B> 100.1.0.29/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16 B> 100.1.0.30/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16
B> 100.1.0.31/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16 B> 172.16.13.0/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16
B> 172.16.13.1/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16 B> 172.16.13.2/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16
B> 172.16.13.3/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16 B> 172.16.13.4/32 [20/0] via 10.0.0.57, Ethernet112, 00:04:16
B> 172.16.14.0/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16 B> 172.16.14.1/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16
B> 172.16.14.2/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16 B> 172.16.14.3/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16
B> 172.16.14.4/32 [20/0] via 10.0.0.59, Ethernet116, 00:04:16 B> 172.16.15.0/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16
B> 172.16.15.1/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16 B> 172.16.15.2/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16
B> 172.16.15.3/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16 B> 172.16.15.4/32 [20/0] via 10.0.0.61, Ethernet120, 00:04:16
C>* 172.25.11.0/24 is directly connected, eth0, 00:04:19
admin@falco-test-dut01:
$ date$ sudo service bgp stopTue Sep 17 19:52:28 UTC 2019
admin@falco-test-dut01:
admin@falco-test-dut01:
$ date$ sudo config interface startup Ethernet124Tue Sep 17 19:52:54 UTC 2019
admin@falco-test-dut01:
admin@falco-test-dut01:
$ date$ sudo service bgp startTue Sep 17 19:53:08 UTC 2019
admin@falco-test-dut01:
admin@falco-test-dut01:~$
Sep 17 19:53:27.084254 falco-test-dut01 NOTICE bgp#fpmsyncd: :- checkWarmStart: bgp doing warm start, restore count 3
Sep 17 19:53:27.084254 falco-test-dut01 NOTICE bgp#fpmsyncd: :- checkAndStart: Initializing Warm-Restart cycle for bgp application.
Sep 17 19:53:27.084819 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to initialized
Sep 17 19:53:27.085478 falco-test-dut01 NOTICE bgp#fpmsyncd: :- getWarmStartTimer: Getting warmStartTimer for docker: bgp, app: bgp, value: 60
Sep 17 19:53:27.085478 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Initiating AppDB restoration process for bgp application.
Sep 17 19:53:27.090624 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Received 49 records from AppDB for bgp application.
Sep 17 19:53:27.090867 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to restored
Sep 17 19:53:27.090952 falco-test-dut01 NOTICE bgp#fpmsyncd: :- runRestoration: Warm-Restart: Completed AppDB restoration process for bgp application.
Sep 17 19:53:27.751516 falco-test-dut01 NOTICE swss#orchagent: :- addNeighbor: Created neighbor 52:54:00:c7:69:59 on Ethernet124
Sep 17 19:53:27.752052 falco-test-dut01 NOTICE swss#orchagent: :- addNextHop: Created next hop 10.0.0.63 on Ethernet124
Sep 17 19:53:28.168820 falco-test-dut01 INFO bgp#bgpd[83]: %ADJCHANGE: neighbor 10.0.0.63(Unknown) in vrf Default Up
Sep 17 19:53:45.875026 falco-test-dut01 NOTICE swss#orchagent: :- addNeighbor: Created neighbor 52:54:00:c7:69:59 on Ethernet124
Sep 17 19:53:45.875559 falco-test-dut01 NOTICE swss#orchagent: :- addNextHop: Created next hop fc00::7e on Ethernet124
Sep 17 19:53:45.927533 falco-test-dut01 INFO bgp#bgpd[83]: %ADJCHANGE: neighbor fc00::7e(Unknown) in vrf Default Up
Sep 17 19:53:49.758334 falco-test-dut01 NOTICE ZTP: Retrying to get the Bootstrap script URL...
Sep 17 19:54:19.761482 falco-test-dut01 NOTICE ZTP: Retrying to get the Bootstrap script URL...
Sep 17 19:54:27.091868 falco-test-dut01 NOTICE bgp#fpmsyncd: :- main: Warm-Restart timer expired.
Sep 17 19:54:27.091868 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart: Initiating reconciliation process for bgp application.
Sep 17 19:54:27.093201 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 20ac:1010:0:4::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:54:27.093622 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 20ac:1010:0:2::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:54:27.094153 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 20ac:1010:0:1::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:54:27.094512 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 2064💯:20 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:54:27.094825 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 172.16.16.4 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:54:27.095129 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry fc00::7c/126 { nexthop: | ifname: Ethernet124 }
Sep 17 19:54:27.095460 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 20ac:1010::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:54:27.095758 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 172.16.16.1 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:54:27.096359 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 20ac:1010:0:3::/64 { nexthop: fc00::7e | ifname: Ethernet124 }
Sep 17 19:54:27.096747 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 172.16.16.2 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:54:27.097059 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 10.0.0.62/31 { nexthop: | ifname: Ethernet124 }
Sep 17 19:54:27.097344 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 100.1.0.32 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:54:27.097639 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 172.16.16.3 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:54:27.097930 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart reconciliation: introducing new entry 172.16.16.0 { nexthop: 10.0.0.63 | ifname: Ethernet124 }
Sep 17 19:54:27.098216 falco-test-dut01 NOTICE bgp#fpmsyncd: :- setWarmStartState: bgp warm start state changed to reconciled
Sep 17 19:54:27.098505 falco-test-dut01 NOTICE bgp#fpmsyncd: :- reconcile: Warm-Restart: Concluded reconciliation process for bgp application.
Ip monitor:
100.1.0.32 via 10.0.0.63 dev Ethernet124 proto 186 src 10.1.0.32 metric 20
172.16.16.0 via 10.0.0.63 dev Ethernet124 proto 186 src 10.1.0.32 metric 20
172.16.16.1 via 10.0.0.63 dev Ethernet124 proto 186 src 10.1.0.32 metric 20
172.16.16.2 via 10.0.0.63 dev Ethernet124 proto 186 src 10.1.0.32 metric 20
172.16.16.3 via 10.0.0.63 dev Ethernet124 proto 186 src 10.1.0.32 metric 20
172.16.16.4 via 10.0.0.63 dev Ethernet124 proto 186 src 10.1.0.32 metric 20
admin@falco-test-dut01:~$ date
Tue Sep 17 19:57:29 UTC 2019
Routes after restart:
admin@falco-test-dut01:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, P - PIM, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
> - selected route, * - FIB route
S 0.0.0.0/0 [200/0] via 172.25.11.1 inactive, 00:03:33
S> 0.0.0.0/0 [1/20] via 172.25.11.1, eth0, 00:03:34 C> 10.0.0.56/31 is directly connected, Ethernet112, 00:03:34
C> 10.0.0.58/31 is directly connected, Ethernet116, 00:03:34 C> 10.0.0.60/31 is directly connected, Ethernet120, 00:03:34
C> 10.0.0.62/31 is directly connected, Ethernet124, 00:03:34 C> 10.1.0.1/32 is directly connected, lo, 00:03:34
C> 10.1.0.32/32 is directly connected, lo, 00:03:34 B> 100.1.0.29/32 [20/0] via 10.0.0.57, Ethernet112, 00:03:32
B> 100.1.0.30/32 [20/0] via 10.0.0.59, Ethernet116, 00:03:32 B> 100.1.0.31/32 [20/0] via 10.0.0.61, Ethernet120, 00:03:32
B> 100.1.0.32/32 [20/0] via 10.0.0.63, Ethernet124, 00:03:28 B> 172.16.13.0/32 [20/0] via 10.0.0.57, Ethernet112, 00:03:32
B> 172.16.13.1/32 [20/0] via 10.0.0.57, Ethernet112, 00:03:32 B> 172.16.13.2/32 [20/0] via 10.0.0.57, Ethernet112, 00:03:32
B> 172.16.13.3/32 [20/0] via 10.0.0.57, Ethernet112, 00:03:32 B> 172.16.13.4/32 [20/0] via 10.0.0.57, Ethernet112, 00:03:32
B> 172.16.14.0/32 [20/0] via 10.0.0.59, Ethernet116, 00:03:32 B> 172.16.14.1/32 [20/0] via 10.0.0.59, Ethernet116, 00:03:32
B> 172.16.14.2/32 [20/0] via 10.0.0.59, Ethernet116, 00:03:32 B> 172.16.14.3/32 [20/0] via 10.0.0.59, Ethernet116, 00:03:32
B> 172.16.14.4/32 [20/0] via 10.0.0.59, Ethernet116, 00:03:32 B> 172.16.15.0/32 [20/0] via 10.0.0.61, Ethernet120, 00:03:32
B> 172.16.15.1/32 [20/0] via 10.0.0.61, Ethernet120, 00:03:32 B> 172.16.15.2/32 [20/0] via 10.0.0.61, Ethernet120, 00:03:32
B> 172.16.15.3/32 [20/0] via 10.0.0.61, Ethernet120, 00:03:32 B> 172.16.15.4/32 [20/0] via 10.0.0.61, Ethernet120, 00:03:32
B> 172.16.16.0/32 [20/0] via 10.0.0.63, Ethernet124, 00:03:28 B> 172.16.16.1/32 [20/0] via 10.0.0.63, Ethernet124, 00:03:28
B> 172.16.16.2/32 [20/0] via 10.0.0.63, Ethernet124, 00:03:28 B> 172.16.16.3/32 [20/0] via 10.0.0.63, Ethernet124, 00:03:28
B> 172.16.16.4/32 [20/0] via 10.0.0.63, Ethernet124, 00:03:28 C> 172.25.11.0/24 is directly connected, eth0, 00:03:34
admin@falco-test-dut01:
$ date$ sudo redis-cli keys ROUTE_TABLE:172*Tue Sep 17 19:57:46 UTC 2019
admin@falco-test-dut01:
IPV6 routes behavior is slightly different
Note: For IPV6 routes, If old route exist in kernel, always Delete and add will be done instead of change. So there may be few micro seconds when a IPV6 route is not available in kernel.
void kernel_route_rib(struct route_node rn, struct prefix p,
struct prefix src_p, struct route_entry old,
struct route_entry *new)
{
int ret = 0;
assert(old || new);
if (new) {
if (p->family == AF_INET)
ret = netlink_route_multipath(RTM_NEWROUTE, p, src_p,
new, (old) ? 1 : 0);
else {
/*
* So v6 route replace semantics are not in
* the kernel at this point as I understand it.
* So let's do a delete than an add.
* In the future once v6 route replace semantics
* are in we can figure out what to do here to
* allow working with old and new kernels.
*
* I'm also intentionally ignoring the failure case
* of the route delete. If that happens yeah we're
* screwed.
*/
if (old)
netlink_route_multipath(RTM_DELROUTE, p,
src_p, old, 0);
ret = netlink_route_multipath(RTM_NEWROUTE, p,
src_p, new, 0);
}
admin@falco-test-dut01:~$ show ip route 172.16.16.4
Routing entry for 172.16.16.4/32
Known via "bgp", distance 20, metric 0, best
Last update 2d03h08m ago
fast ping from DUT
With -K option:
admin@falco-test-dut01:
$ date$ sudo service bgp stopThu Sep 19 23:27:08 UTC 2019
admin@falco-test-dut01:
admin@falco-test-dut01:
$ date$ sudo service bgp startThu Sep 19 23:27:24 UTC 2019
admin@falco-test-dut01:
admin@falco-test-dut01:~$ date
Thu Sep 19 23:27:32 UTC 2019
Fast Ping; (Outgoing packets went fine )
admin@falco-test-dut01:
$ date$ sudo ping 172.16.16.4 -fThu Sep 19 23:27:05 UTC 2019
admin@falco-test-dut01:
PING 172.16.16.4 (172.16.16.4) 56(84) bytes of data.
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................^C
--- 172.16.16.4 ping statistics ---
6441 packets transmitted, 0 received, 100% packet loss, time 103968ms
admin@falco-test-dut01:~$ date
Thu Sep 19 23:28:45 UTC 2019
Watch for ip monitor:
admin@falco-test-dut01:~$ ip monitor | grep 172.16.16.4
No update
- Description for the changelog
- A picture of a cute animal (not mandatory but encouraged)