Bfd Mark

Scenario to verify BFD mark (SO_MARK) functionality with BGP. BFD profile mark allows marking BFD packets at the socket level for policy routing in scenarios with VRFs and multiple WANs. These tests verify that the mark is applied correctly, can be changed dynamically, and controls BFD session state when traffic policies filter by mark.

Test BFD Profile Mark

Description

Test that BFD profile mark is applied correctly. Configures a BFD profile with mark 99 on both routers and verifies that BGP establishes, BFD is up with the correct mark value, and end-to-end connectivity works.

Scenario

Step 1: Set the following configuration in DUT1 :

set interfaces dummy dum0 address 1.1.1.1/24
set interfaces ethernet eth0 address 10.10.0.200/24
set protocols bfd profile BFD_MARK mark 99
set protocols bgp 20 neighbor peer bfd profile BFD_MARK
set protocols bgp 20 neighbor peer remote-address 10.10.0.100
set protocols bgp 20 neighbor peer remote-as 10
set protocols bgp 20 neighbor peer route-map export PERMIT
set protocols bgp 20 redistribute connected route-map REDIS
set protocols logging bgp bfd
set protocols logging bgp neighbor-events
set protocols logging level debugging
set protocols route-map PERMIT rule 1 action permit
set protocols route-map REDIS rule 1 action permit
set protocols route-map REDIS rule 1 match interface dum0
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 2: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.10.0.100/24
set protocols bfd profile BFD_MARK mark 99
set protocols bgp 10 neighbor peer bfd profile BFD_MARK
set protocols bgp 10 neighbor peer remote-address 10.10.0.200
set protocols bgp 10 neighbor peer remote-as 20
set protocols bgp 10 neighbor peer route-map import PERMIT
set protocols logging bgp bfd
set protocols logging bgp neighbor-events
set protocols logging level debugging
set protocols route-map PERMIT rule 1 action permit
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Run the command protocols bgp show ip neighbors on DUT0 and check whether the output matches the following regular expressions:

BGP state = Established
Status: Up
BFD: Type: single hop
Show output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 10, external link
Local Role: undefined
Remote Role: undefined
Hostname: osdx
BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100
BGP state = Established, up for 00:00:02
Last read 00:00:01, Last write 00:00:01
Hold time is 90 seconds, keepalive interval is 30 seconds
Configured hold time is 90 seconds, keepalive interval is 30 seconds
Configured tcp-mss is 0, synced tcp-mss is 1448
Configured conditional advertisements interval is 60 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
AddPath:
IPv4 Unicast: RX advertised and received
Paths-Limit:
IPv4 Unicast: advertised (0) and received (0)
Long-lived Graceful Restart: advertised and received
Address families by peer:
Route refresh: advertised and received
Enhanced Route Refresh: advertised and received
Address Family IPv4 Unicast: advertised and received
Hostname Capability: advertised (name: osdx,domain name: n/a) received (name: osdx,domain name: n/a)
Version Capability: not advertised not received
Link-Local Next Hop Capability: not advertised not received
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Address families by peer:
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Peer has restarted (R-bit is set)
Peer has restarted (N-bit is set)
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: Helper

R bit: True
N bit: True
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
Configured LLGR Stale Path Time(sec): 0
IPv4 Unicast:
F bit: False
End-of-RIB sent: Yes
End-of-RIB sent after update: Yes
End-of-RIB received: Yes
Timers:
Configured Stale Path Time(sec): 360
LLGR Stale Path Time(sec): 0
Message statistics:
Inq depth is 0
Outq depth is 0
Sent       Rcvd
Opens:                  1          1
Notifications:          0          0
Updates:                1          3
Keepalives:             1          1
Route Refresh:          1          2
Capability:             0          0
Total:                  4          7

Prefix statistics:
Inbound filtered: 0
AS-PATH loop: 0
Originator loop: 0
Cluster loop: 0
Invalid next-hop: 0
Withdrawn: 0
Attributes discarded: 0

Minimum time between advertisement runs is 0 seconds
Update delay timer is 0 seconds (remaining: 0)

For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
Inbound path policy configured
Route map for incoming advertisements is *PERMIT
Outbound updates discarded due to missing policy
1 accepted, 0 sent prefixes

Connections established 1; dropped 0
Last reset 00:00:02,  No path to specified Neighbor (n/a)
External BGP neighbor may be up to 1 hops away.
Local host: 10.10.0.100, Local port: 53708
Foreign host: 10.10.0.200, Foreign port: 179
Nexthop: 10.10.0.100
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 30
Estimated round trip time: 0 ms
BFD Hold Time (interval 30) timer expires in 0 seconds
Read thread: on  Write thread: on  FD used: 29

BFD: Type: single hop
Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300
Profile: BFD_MARK
Status: Up, Last update: 0:00:00:01

Step 4: Run the command protocols bfd show peers on DUT0 and check whether the output matches the following regular expressions:

Status: up
Mark: 99
Show output
BFD Peers:
peer 10.10.0.200 local-address 10.10.0.100 vrf default interface eth0
ID: 3708392502
Remote ID: 524361793
Active mode
Mark: 99
Status: up
Uptime: 1 second(s)
Diagnostics: ok
Remote diagnostics: ok
Peer Type: dynamic
RTT min/avg/max: 0/0/0 usec
Profile: BFD_MARK
Local timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Transmission interval (actual with jitter): 282ms
Detection timeout: 900ms
Echo receive interval: disabled
Echo transmission interval: disabled
Remote timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Echo receive interval: disabled

Step 5: Run the command protocols bgp show ip on DUT0 and check whether the output matches the following regular expressions:

1.1.1.0/24
Show output
BGP table version is 1, local router ID is 10.10.0.100, vrf id 0
Default local pref 100, local AS 10
Status codes:  s suppressed, d damped, h history, u unsorted, * 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
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
*>  1.1.1.0/24       10.10.0.200              0             0 20 ?

Displayed 1 routes and 1 total paths

Step 6: Ping the IP address 1.1.1.1 from DUT0:

admin@DUT0$ ping 1.1.1.1 count 1 size 56 timeout 1
Show output
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=0.347 ms

--- 1.1.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.347/0.347/0.347/0.000 ms

Test BFD Mark Dynamic Change

Description

Test that changing the mark value in the BFD profile updates the BFD session dynamically without tearing it down. The mark is changed from 99 to 50 and back to 99, verifying that show peers reflects each change.

Scenario

Step 1: Set the following configuration in DUT1 :

set interfaces dummy dum0 address 1.1.1.1/24
set interfaces ethernet eth0 address 10.10.0.200/24
set protocols bfd profile BFD_MARK mark 99
set protocols bgp 20 neighbor peer bfd profile BFD_MARK
set protocols bgp 20 neighbor peer remote-address 10.10.0.100
set protocols bgp 20 neighbor peer remote-as 10
set protocols bgp 20 neighbor peer route-map export PERMIT
set protocols bgp 20 redistribute connected route-map REDIS
set protocols logging bgp bfd
set protocols logging bgp neighbor-events
set protocols logging level debugging
set protocols route-map PERMIT rule 1 action permit
set protocols route-map REDIS rule 1 action permit
set protocols route-map REDIS rule 1 match interface dum0
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 2: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.10.0.100/24
set protocols bfd profile BFD_MARK mark 99
set protocols bgp 10 neighbor peer bfd profile BFD_MARK
set protocols bgp 10 neighbor peer remote-address 10.10.0.200
set protocols bgp 10 neighbor peer remote-as 20
set protocols bgp 10 neighbor peer route-map import PERMIT
set protocols logging bgp bfd
set protocols logging bgp neighbor-events
set protocols logging level debugging
set protocols route-map PERMIT rule 1 action permit
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Run the command protocols bgp show ip neighbors on DUT0 and check whether the output matches the following regular expressions:

BGP state = Established
Status: Up
BFD: Type: single hop
Show output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 10, external link
Local Role: undefined
Remote Role: undefined
Hostname: osdx
BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100
BGP state = Established, up for 00:00:05
Last read 00:00:04, Last write 00:00:04
Hold time is 90 seconds, keepalive interval is 30 seconds
Configured hold time is 90 seconds, keepalive interval is 30 seconds
Configured tcp-mss is 0, synced tcp-mss is 1448
Configured conditional advertisements interval is 60 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
AddPath:
IPv4 Unicast: RX advertised and received
Paths-Limit:
IPv4 Unicast: advertised (0) and received (0)
Long-lived Graceful Restart: advertised and received
Address families by peer:
Route refresh: advertised and received
Enhanced Route Refresh: advertised and received
Address Family IPv4 Unicast: advertised and received
Hostname Capability: advertised (name: osdx,domain name: n/a) received (name: osdx,domain name: n/a)
Version Capability: not advertised not received
Link-Local Next Hop Capability: not advertised not received
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Address families by peer:
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Peer has restarted (R-bit is set)
Peer has restarted (N-bit is set)
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: Helper

R bit: True
N bit: True
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
Configured LLGR Stale Path Time(sec): 0
IPv4 Unicast:
F bit: False
End-of-RIB sent: Yes
End-of-RIB sent after update: Yes
End-of-RIB received: Yes
Timers:
Configured Stale Path Time(sec): 360
LLGR Stale Path Time(sec): 0
Message statistics:
Inq depth is 0
Outq depth is 0
Sent       Rcvd
Opens:                  2          1
Notifications:          1          0
Updates:                1          3
Keepalives:             1          1
Route Refresh:          1          2
Capability:             0          0
Total:                  6          7

Prefix statistics:
Inbound filtered: 0
AS-PATH loop: 0
Originator loop: 0
Cluster loop: 0
Invalid next-hop: 0
Withdrawn: 0
Attributes discarded: 0

Minimum time between advertisement runs is 0 seconds
Update delay timer is 0 seconds (remaining: 0)

For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
Inbound path policy configured
Route map for incoming advertisements is *PERMIT
Outbound updates discarded due to missing policy
1 accepted, 0 sent prefixes

Connections established 1; dropped 0
Last reset 00:00:05,  Cease: connection collision (n/a)
External BGP neighbor may be up to 1 hops away.
Local host: 10.10.0.100, Local port: 179
Foreign host: 10.10.0.200, Foreign port: 46232
Nexthop: 10.10.0.100
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 30
Estimated round trip time: 0 ms
BFD Hold Time (interval 30) timer expires in 0 seconds
Read thread: on  Write thread: on  FD used: 30

BFD: Type: single hop
Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300
Profile: BFD_MARK
Status: Up, Last update: 0:00:00:01

Step 4: Run the command protocols bfd show peers on DUT0 and check whether the output matches the following regular expressions:

Status: up
Mark: 99
Show output
BFD Peers:
peer 10.10.0.200 local-address 10.10.0.100 vrf default interface eth0
ID: 1063792256
Remote ID: 2785670351
Active mode
Mark: 99
Status: up
Uptime: 1 second(s)
Diagnostics: ok
Remote diagnostics: ok
Peer Type: dynamic
RTT min/avg/max: 0/0/0 usec
Profile: BFD_MARK
Local timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Transmission interval (actual with jitter): 246ms
Detection timeout: 900ms
Echo receive interval: disabled
Echo transmission interval: disabled
Remote timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Echo receive interval: disabled

Step 5: Modify the following configuration lines in DUT0 :

set protocols bfd profile BFD_MARK mark 50

Step 6: Run the command protocols bfd show peers on DUT0 and check whether the output matches the following regular expressions:

Mark: 50
Show output
BFD Peers:
peer 10.10.0.200 local-address 10.10.0.100 vrf default interface eth0
ID: 1063792256
Remote ID: 2785670351
Active mode
Mark: 50
Status: up
Uptime: 2 second(s)
Diagnostics: ok
Remote diagnostics: ok
Peer Type: dynamic
RTT min/avg/max: 0/0/0 usec
Profile: BFD_MARK
Local timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Transmission interval (actual with jitter): 225ms
Detection timeout: 900ms
Echo receive interval: disabled
Echo transmission interval: disabled
Remote timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Echo receive interval: disabled

Step 7: Modify the following configuration lines in DUT0 :

set protocols bfd profile BFD_MARK mark 99

Step 8: Run the command protocols bfd show peers on DUT0 and check whether the output matches the following regular expressions:

Status: up
Mark: 99
Show output
BFD Peers:
peer 10.10.0.200 local-address 10.10.0.100 vrf default interface eth0
ID: 1063792256
Remote ID: 2785670351
Active mode
Mark: 99
Status: up
Uptime: 2 second(s)
Diagnostics: ok
Remote diagnostics: ok
Peer Type: dynamic
RTT min/avg/max: 0/0/0 usec
Profile: BFD_MARK
Local timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Transmission interval (actual with jitter): 231ms
Detection timeout: 900ms
Echo receive interval: disabled
Echo transmission interval: disabled
Remote timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Echo receive interval: disabled

Step 9: Run the command protocols bgp show ip neighbors on DUT0 and check whether the output matches the following regular expressions:

BGP state = Established
Status: Up
BFD: Type: single hop
Show output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 10, external link
Local Role: undefined
Remote Role: undefined
Hostname: osdx
BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100
BGP state = Established, up for 00:00:06
Last read 00:00:05, Last write 00:00:05
Hold time is 90 seconds, keepalive interval is 30 seconds
Configured hold time is 90 seconds, keepalive interval is 30 seconds
Configured tcp-mss is 0, synced tcp-mss is 1448
Configured conditional advertisements interval is 60 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
AddPath:
IPv4 Unicast: RX advertised and received
Paths-Limit:
IPv4 Unicast: advertised (0) and received (0)
Long-lived Graceful Restart: advertised and received
Address families by peer:
Route refresh: advertised and received
Enhanced Route Refresh: advertised and received
Address Family IPv4 Unicast: advertised and received
Hostname Capability: advertised (name: osdx,domain name: n/a) received (name: osdx,domain name: n/a)
Version Capability: not advertised not received
Link-Local Next Hop Capability: not advertised not received
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Address families by peer:
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Peer has restarted (R-bit is set)
Peer has restarted (N-bit is set)
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: Helper

R bit: True
N bit: True
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
Configured LLGR Stale Path Time(sec): 0
IPv4 Unicast:
F bit: False
End-of-RIB sent: Yes
End-of-RIB sent after update: Yes
End-of-RIB received: Yes
Timers:
Configured Stale Path Time(sec): 360
LLGR Stale Path Time(sec): 0
Message statistics:
Inq depth is 0
Outq depth is 0
Sent       Rcvd
Opens:                  2          1
Notifications:          1          0
Updates:                1          3
Keepalives:             1          1
Route Refresh:          1          2
Capability:             0          0
Total:                  6          7

Prefix statistics:
Inbound filtered: 0
AS-PATH loop: 0
Originator loop: 0
Cluster loop: 0
Invalid next-hop: 0
Withdrawn: 0
Attributes discarded: 0

Minimum time between advertisement runs is 0 seconds
Update delay timer is 0 seconds (remaining: 0)

For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
Inbound path policy configured
Route map for incoming advertisements is *PERMIT
Outbound updates discarded due to missing policy
1 accepted, 0 sent prefixes

Connections established 1; dropped 0
Last reset 00:00:06,  Cease: connection collision (n/a)
External BGP neighbor may be up to 1 hops away.
Local host: 10.10.0.100, Local port: 179
Foreign host: 10.10.0.200, Foreign port: 46232
Nexthop: 10.10.0.100
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 30
Estimated round trip time: 0 ms
BFD Hold Time (interval 30) timer expires in 0 seconds
Read thread: on  Write thread: on  FD used: 30

BFD: Type: single hop
Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300
Profile: BFD_MARK
Status: Up, Last update: 0:00:00:02

Test BFD Mark Controls Session

Description

Test that the BFD mark controls session state. A traffic policy is configured to drop BFD packets that do not carry mark 99 and to log packets that do. With mark 99, BFD stays up and marked packets appear in the system journal. Changing to mark 50 causes BFD to go down. Restoring mark 99 brings BFD back up.

Scenario

Step 1: Set the following configuration in DUT1 :

set interfaces dummy dum0 address 1.1.1.1/24
set interfaces ethernet eth0 address 10.10.0.200/24
set protocols bfd profile BFD_MARK mark 99
set protocols bgp 20 neighbor peer bfd profile BFD_MARK
set protocols bgp 20 neighbor peer remote-address 10.10.0.100
set protocols bgp 20 neighbor peer remote-as 10
set protocols bgp 20 neighbor peer route-map export PERMIT
set protocols bgp 20 redistribute connected route-map REDIS
set protocols logging bgp bfd
set protocols logging bgp neighbor-events
set protocols logging level debugging
set protocols route-map PERMIT rule 1 action permit
set protocols route-map REDIS rule 1 action permit
set protocols route-map REDIS rule 1 match interface dum0
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 2: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.10.0.100/24
set protocols bfd profile BFD_MARK mark 99
set protocols bgp 10 neighbor peer bfd profile BFD_MARK
set protocols bgp 10 neighbor peer remote-address 10.10.0.200
set protocols bgp 10 neighbor peer remote-as 20
set protocols bgp 10 neighbor peer route-map import PERMIT
set protocols logging bgp bfd
set protocols logging bgp neighbor-events
set protocols logging level debugging
set protocols route-map PERMIT rule 1 action permit
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Run the command protocols bgp show ip neighbors on DUT0 and check whether the output matches the following regular expressions:

BGP state = Established
Status: Up
BFD: Type: single hop
Show output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 10, external link
Local Role: undefined
Remote Role: undefined
Hostname: osdx
BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100
BGP state = Established, up for 00:00:03
Last read 00:00:01, Last write 00:00:02
Hold time is 90 seconds, keepalive interval is 30 seconds
Configured hold time is 90 seconds, keepalive interval is 30 seconds
Configured tcp-mss is 0, synced tcp-mss is 1448
Configured conditional advertisements interval is 60 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
AddPath:
IPv4 Unicast: RX advertised and received
Paths-Limit:
IPv4 Unicast: advertised (0) and received (0)
Long-lived Graceful Restart: advertised and received
Address families by peer:
Route refresh: advertised and received
Enhanced Route Refresh: advertised and received
Address Family IPv4 Unicast: advertised and received
Hostname Capability: advertised (name: osdx,domain name: n/a) received (name: osdx,domain name: n/a)
Version Capability: not advertised not received
Link-Local Next Hop Capability: not advertised not received
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Address families by peer:
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Peer has restarted (R-bit is set)
Peer has restarted (N-bit is set)
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: Helper

R bit: True
N bit: True
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
Configured LLGR Stale Path Time(sec): 0
IPv4 Unicast:
F bit: False
End-of-RIB sent: Yes
End-of-RIB sent after update: Yes
End-of-RIB received: Yes
Timers:
Configured Stale Path Time(sec): 360
LLGR Stale Path Time(sec): 0
Message statistics:
Inq depth is 0
Outq depth is 0
Sent       Rcvd
Opens:                  1          1
Notifications:          0          0
Updates:                1          3
Keepalives:             1          1
Route Refresh:          1          2
Capability:             0          0
Total:                  4          7

Prefix statistics:
Inbound filtered: 0
AS-PATH loop: 0
Originator loop: 0
Cluster loop: 0
Invalid next-hop: 0
Withdrawn: 0
Attributes discarded: 0

Minimum time between advertisement runs is 0 seconds
Update delay timer is 0 seconds (remaining: 0)

For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
Inbound path policy configured
Route map for incoming advertisements is *PERMIT
Outbound updates discarded due to missing policy
1 accepted, 0 sent prefixes

Connections established 1; dropped 0
Last reset 00:00:03,  No path to specified Neighbor (n/a)
External BGP neighbor may be up to 1 hops away.
Local host: 10.10.0.100, Local port: 56162
Foreign host: 10.10.0.200, Foreign port: 179
Nexthop: 10.10.0.100
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 30
Estimated round trip time: 0 ms
BFD Hold Time (interval 30) timer expires in 0 seconds
Read thread: on  Write thread: on  FD used: 29

BFD: Type: single hop
Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300
Profile: BFD_MARK
Status: Up, Last update: 0:00:00:02

Step 4: Run the command system journal clear on DUT0 and expect the following output:

Show output
Vacuuming done, freed 0B of archived journals from /run/log/journal.
Vacuuming done, freed 0B of archived journals from /var/log/journal.
Deleted archived journal /run/log/journal/3a8dbab828fc40a183893e468c03e10b/system@f6b627f530614ebebcf2fb35acc78ad6-0000000000005fdf-000657570bf175af.journal (184.0K).
Vacuuming done, freed 184.0K of archived journals from /run/log/journal/3a8dbab828fc40a183893e468c03e10b.

Step 5: Modify the following configuration lines in DUT0 :

set interfaces ethernet eth0 traffic policy out DROP_BFD_UNMARKED
set traffic policy DROP_BFD_UNMARKED rule 1 action drop
set traffic policy DROP_BFD_UNMARKED rule 1 selector BFD_NO_MARK
set traffic policy DROP_BFD_UNMARKED rule 2 log prefix BFD_MARKED
set traffic policy DROP_BFD_UNMARKED rule 2 selector BFD_LOG
set traffic selector BFD_LOG rule 1 destination port 3784
set traffic selector BFD_LOG rule 1 mark 99
set traffic selector BFD_LOG rule 1 protocol udp
set traffic selector BFD_NO_MARK rule 1 destination port 3784
set traffic selector BFD_NO_MARK rule 1 not mark 99
set traffic selector BFD_NO_MARK rule 1 protocol udp

Step 6: Run the command protocols bgp show ip neighbors on DUT0 and check whether the output matches the following regular expressions:

BGP state = Established
Status: Up
BFD: Type: single hop
Show output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 10, external link
Local Role: undefined
Remote Role: undefined
Hostname: osdx
BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100
BGP state = Established, up for 00:00:05
Last read 00:00:03, Last write 00:00:04
Hold time is 90 seconds, keepalive interval is 30 seconds
Configured hold time is 90 seconds, keepalive interval is 30 seconds
Configured tcp-mss is 0, synced tcp-mss is 1448
Configured conditional advertisements interval is 60 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
AddPath:
IPv4 Unicast: RX advertised and received
Paths-Limit:
IPv4 Unicast: advertised (0) and received (0)
Long-lived Graceful Restart: advertised and received
Address families by peer:
Route refresh: advertised and received
Enhanced Route Refresh: advertised and received
Address Family IPv4 Unicast: advertised and received
Hostname Capability: advertised (name: osdx,domain name: n/a) received (name: osdx,domain name: n/a)
Version Capability: not advertised not received
Link-Local Next Hop Capability: not advertised not received
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Address families by peer:
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Peer has restarted (R-bit is set)
Peer has restarted (N-bit is set)
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: Helper

R bit: True
N bit: True
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
Configured LLGR Stale Path Time(sec): 0
IPv4 Unicast:
F bit: False
End-of-RIB sent: Yes
End-of-RIB sent after update: Yes
End-of-RIB received: Yes
Timers:
Configured Stale Path Time(sec): 360
LLGR Stale Path Time(sec): 0
Message statistics:
Inq depth is 0
Outq depth is 0
Sent       Rcvd
Opens:                  1          1
Notifications:          0          0
Updates:                1          3
Keepalives:             1          1
Route Refresh:          1          2
Capability:             0          0
Total:                  4          7

Prefix statistics:
Inbound filtered: 0
AS-PATH loop: 0
Originator loop: 0
Cluster loop: 0
Invalid next-hop: 0
Withdrawn: 0
Attributes discarded: 0

Minimum time between advertisement runs is 0 seconds
Update delay timer is 0 seconds (remaining: 0)

For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
Inbound path policy configured
Route map for incoming advertisements is *PERMIT
Outbound updates discarded due to missing policy
1 accepted, 0 sent prefixes

Connections established 1; dropped 0
Last reset 00:00:05,  No path to specified Neighbor (n/a)
External BGP neighbor may be up to 1 hops away.
Local host: 10.10.0.100, Local port: 56162
Foreign host: 10.10.0.200, Foreign port: 179
Nexthop: 10.10.0.100
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 30
Estimated round trip time: 0 ms
BFD Hold Time (interval 30) timer expires in 0 seconds
Read thread: on  Write thread: on  FD used: 29

BFD: Type: single hop
Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300
Profile: BFD_MARK
Status: Up, Last update: 0:00:00:04

Step 7: Run the command system journal show | tail on DUT0 and check whether the output contains the following tokens:

[BFD_MARKED-2] ACCEPT
Show output
Jul 24 08:20:43.276056 osdx OSDxCLI[148868]: User 'admin' added a new cfg line: 'set interfaces ethernet eth0 traffic policy out DROP_BFD_UNMARKED'.
Jul 24 08:20:43.351157 osdx OSDxCLI[148868]: User 'admin' added a new cfg line: 'show changes'.
Jul 24 08:20:43.444819 osdx ubnt-cfgd[166457]: inactive
Jul 24 08:20:43.539944 osdx INFO[166495]: FRR daemons did not change
Jul 24 08:20:43.722396 osdx kernel: [BFD_MARKED-2] ACCEPT IN= OUT=eth0 SRC=10.10.0.100 DST=10.10.0.200 LEN=52 TOS=0x00 PREC=0xC0 TTL=255 ID=29688 DF PROTO=UDP SPT=49153 DPT=3784 LEN=32 MARK=0x63
Jul 24 08:20:43.816827 osdx cfgd[1923]: [148868]Completed change to active configuration
Jul 24 08:20:43.817358 osdx OSDxCLI[148868]: User 'admin' committed the configuration.
Jul 24 08:20:43.833151 osdx OSDxCLI[148868]: User 'admin' left the configuration menu.
Jul 24 08:20:43.986341 osdx OSDxCLI[148868]: User 'admin' executed a new command: 'protocols bgp show ip neighbors'.
Jul 24 08:20:44.002386 osdx kernel: [BFD_MARKED-2] ACCEPT IN= OUT=eth0 SRC=10.10.0.100 DST=10.10.0.200 LEN=52 TOS=0x00 PREC=0xC0 TTL=255 ID=29737 DF PROTO=UDP SPT=49153 DPT=3784 LEN=32 MARK=0x63

Step 8: Modify the following configuration lines in DUT0 :

set protocols bfd profile BFD_MARK mark 50

Step 9: Run the command protocols bfd show peers on DUT0 and check whether the output matches the following regular expressions:

Status: (down|init|shutdown)
Show output
BFD Peers:
peer 10.10.0.200 local-address 10.10.0.100 vrf default interface eth0
ID: 1705012612
Remote ID: 3769829513
Active mode
Mark: 50
Status: init
Diagnostics: control detection time expired
Remote diagnostics: control detection time expired
Peer Type: dynamic
RTT min/avg/max: 0/0/0 usec
Profile: BFD_MARK
Local timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Transmission interval (actual with jitter): 820ms
Detection timeout: 3000ms
Echo receive interval: disabled
Echo transmission interval: disabled
Remote timers:
Detect-multiplier: 3
Receive interval: 1000ms
Transmission interval: 1000ms
Echo receive interval: disabled

Step 10: Modify the following configuration lines in DUT0 :

set protocols bfd profile BFD_MARK mark 99

Step 11: Run the command protocols bfd show peers on DUT0 and check whether the output matches the following regular expressions:

Status: up
Mark: 99
Show output
BFD Peers:
peer 10.10.0.200 local-address 10.10.0.100 vrf default interface eth0
ID: 1705012612
Remote ID: 3769829513
Active mode
Mark: 99
Status: up
Uptime: 2 second(s)
Diagnostics: ok
Remote diagnostics: ok
Peer Type: dynamic
RTT min/avg/max: 0/0/0 usec
Profile: BFD_MARK
Local timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Transmission interval (actual with jitter): 291ms
Detection timeout: 900ms
Echo receive interval: disabled
Echo transmission interval: disabled
Remote timers:
Detect-multiplier: 3
Receive interval: 300ms
Transmission interval: 300ms
Echo receive interval: disabled

Step 12: Run the command protocols bgp show ip on DUT0 and check whether the output matches the following regular expressions:

1.1.1.0/24
Show output
BGP table version is 3, local router ID is 10.10.0.100, vrf id 0
Default local pref 100, local AS 10
Status codes:  s suppressed, d damped, h history, u unsorted, * 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
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
*>  1.1.1.0/24       10.10.0.200              0             0 20 ?

Displayed 1 routes and 1 total paths

Step 13: Ping the IP address 1.1.1.1 from DUT0:

admin@DUT0$ ping 1.1.1.1 count 1 size 56 timeout 1
Show output
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=0.316 ms

--- 1.1.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.316/0.316/0.316/0.000 ms