Skip to content

Commit 9d1f66b

Browse files
authored
[bfdorch] add local discriminator to state DB (#2629)
add local discriminator to state DB for "show bfd summary/peer" to show it.
1 parent c54b3d1 commit 9d1f66b

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

orchagent/bfdorch.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -306,9 +306,11 @@ bool BfdOrch::create_bfd_session(const string& key, const vector<FieldValueTuple
306306
attrs.emplace_back(attr);
307307
fvVector.emplace_back("type", session_type_lookup.at(bfd_session_type));
308308

309+
uint32_t local_discriminator = bfd_gen_id();
309310
attr.id = SAI_BFD_SESSION_ATTR_LOCAL_DISCRIMINATOR;
310-
attr.value.u32 = bfd_gen_id();
311+
attr.value.u32 = local_discriminator;
311312
attrs.emplace_back(attr);
313+
fvVector.emplace_back("local_discriminator", to_string(local_discriminator));
312314

313315
attr.id = SAI_BFD_SESSION_ATTR_UDP_SRC_PORT;
314316
attr.value.u32 = bfd_src_port();

tests/test_bfd.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def test_addRemoveBfdSession(self, dvs):
6868

6969
# Check STATE_DB entry related to the BFD session
7070
expected_sdb_values = {"state": "Down", "type": "async_active", "local_addr" : "10.0.0.1", "tx_interval" :"1000",
71-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false"}
71+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false", "local_discriminator" : "1"}
7272
self.check_state_bfd_session_value("default|default|10.0.0.2", expected_sdb_values)
7373

7474
# Send BFD session state notification to update BFD session state
@@ -108,7 +108,7 @@ def test_addRemoveBfdSession_ipv6(self, dvs):
108108

109109
# Check STATE_DB entry related to the BFD session
110110
expected_sdb_values = {"state": "Down", "type": "async_active", "local_addr" : "2000::1", "tx_interval" :"1000",
111-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false"}
111+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false", "local_discriminator" : "2"}
112112
self.check_state_bfd_session_value("default|default|2000::2", expected_sdb_values)
113113

114114
# Send BFD session state notification to update BFD session state
@@ -150,7 +150,7 @@ def test_addRemoveBfdSession_interface(self, dvs):
150150

151151
# Check STATE_DB entry related to the BFD session
152152
expected_sdb_values = {"state": "Down", "type": "async_active", "local_addr" : "10.0.0.1", "tx_interval" :"1000",
153-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false"}
153+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false", "local_discriminator" : "3"}
154154
self.check_state_bfd_session_value("default|Ethernet0|10.0.0.2", expected_sdb_values)
155155

156156
# Send BFD session state notification to update BFD session state
@@ -192,7 +192,7 @@ def test_addRemoveBfdSession_txrx_interval(self, dvs):
192192

193193
# Check STATE_DB entry related to the BFD session
194194
expected_sdb_values = {"state": "Down", "type": "async_active", "local_addr" : "10.0.0.1", "tx_interval" :"300",
195-
"rx_interval" : "500", "multiplier" : "10", "multihop": "false"}
195+
"rx_interval" : "500", "multiplier" : "10", "multihop": "false", "local_discriminator" : "4"}
196196
self.check_state_bfd_session_value("default|default|10.0.0.2", expected_sdb_values)
197197

198198
# Send BFD session state notification to update BFD session state
@@ -233,7 +233,7 @@ def test_addRemoveBfdSession_multiplier(self, dvs):
233233

234234
# Check STATE_DB entry related to the BFD session
235235
expected_sdb_values = {"state": "Down", "type": "async_active", "local_addr" : "10.0.0.1", "tx_interval" :"1000",
236-
"rx_interval" : "1000", "multiplier" : "5", "multihop": "false"}
236+
"rx_interval" : "1000", "multiplier" : "5", "multihop": "false", "local_discriminator" : "5"}
237237
self.check_state_bfd_session_value("default|default|10.0.0.2", expected_sdb_values)
238238

239239
# Send BFD session state notification to update BFD session state
@@ -274,7 +274,7 @@ def test_addRemoveBfdSession_multihop(self, dvs):
274274

275275
# Check STATE_DB entry related to the BFD session
276276
expected_sdb_values = {"state": "Down", "type": "async_active", "local_addr" : "10.0.0.1", "tx_interval" :"1000",
277-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "true"}
277+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "true", "local_discriminator" : "6"}
278278
self.check_state_bfd_session_value("default|default|10.0.0.2", expected_sdb_values)
279279

280280
# Send BFD session state notification to update BFD session state
@@ -314,7 +314,7 @@ def test_addRemoveBfdSession_type(self, dvs):
314314

315315
# Check STATE_DB entry related to the BFD session
316316
expected_sdb_values = {"state": "Down", "type": "demand_active", "local_addr" : "10.0.0.1", "tx_interval" :"1000",
317-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false"}
317+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false", "local_discriminator" : "7"}
318318
self.check_state_bfd_session_value("default|default|10.0.0.2", expected_sdb_values)
319319

320320
# Send BFD session state notification to update BFD session state
@@ -357,7 +357,7 @@ def test_multipleBfdSessions(self, dvs):
357357
# Check STATE_DB entry related to the BFD session 1
358358
key_state_db1 = "default|default|10.0.0.2"
359359
expected_sdb_values1 = {"state": "Down", "type": "async_active", "local_addr" : "10.0.0.1", "tx_interval" :"1000",
360-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false"}
360+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false", "local_discriminator" : "8"}
361361
self.check_state_bfd_session_value(key_state_db1, expected_sdb_values1)
362362

363363
# Create BFD session 2
@@ -385,7 +385,7 @@ def test_multipleBfdSessions(self, dvs):
385385
# Check STATE_DB entry related to the BFD session 2
386386
key_state_db2 = "default|default|10.0.1.2"
387387
expected_sdb_values2 = {"state": "Down", "type": "async_active", "local_addr" : "10.0.0.1", "tx_interval" :"300",
388-
"rx_interval" : "500", "multiplier" : "10", "multihop": "false"}
388+
"rx_interval" : "500", "multiplier" : "10", "multihop": "false", "local_discriminator" : "9"}
389389
self.check_state_bfd_session_value(key_state_db2, expected_sdb_values2)
390390

391391
# Create BFD session 3
@@ -411,7 +411,7 @@ def test_multipleBfdSessions(self, dvs):
411411
# Check STATE_DB entry related to the BFD session 3
412412
key_state_db3 = "default|default|2000::2"
413413
expected_sdb_values3 = {"state": "Down", "type": "demand_active", "local_addr" : "2000::1", "tx_interval" :"1000",
414-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false"}
414+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false", "local_discriminator" : "10"}
415415
self.check_state_bfd_session_value(key_state_db3, expected_sdb_values3)
416416

417417
# Create BFD session 4
@@ -437,7 +437,7 @@ def test_multipleBfdSessions(self, dvs):
437437
# Check STATE_DB entry related to the BFD session 4
438438
key_state_db4 = "default|default|3000::2"
439439
expected_sdb_values4 = {"state": "Down", "type": "async_active", "local_addr" : "3000::1", "tx_interval" :"1000",
440-
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false"}
440+
"rx_interval" : "1000", "multiplier" : "10", "multihop": "false", "local_discriminator" : "11"}
441441
self.check_state_bfd_session_value(key_state_db4, expected_sdb_values4)
442442

443443
# Update BFD session states

0 commit comments

Comments
 (0)