Skip to content

Commit 88f4b89

Browse files
vdahiya12yxieca
authored andcommitted
add data for telemtery enhancement for 'active-active' cable type (#332)
Signed-off-by: vaibhav-dahiya [email protected] This PR adds logic to add the following gRPC relevant telemetry schema fields in the state DB table MUX_CABLE_INFO 1) "self_link_state" 2) "up" 3) "peer_link_state" 4) "up" 5) "self_oper_state" 6) "up" 7) "peer_oper_state" 8) "up" 9) "server_version" 10) "1.0" 11) "grpc_connection_status" 12) "READY" 13) "self_mux_direction" 14) "active" 15) "peer_mux_direction" 16) "active" 17) "peer_mux_direction_probe_count" 18) "23" 19) "mux_direction_probe_count" 20) "23" 21) "link_state_probe_count" 22) "1" 23) "peer_link_state_probe_count" 24) "1" 25) "operation_state_probe_count" 26) "1" 27) "peer_operation_state_probe_count" 28)"1" This data will allow telemetry to check gRPC stats and version of the server and be able to raise alert if needed appropriatley. Description gPRC data for telemetry appropriate logic is added for handling the gRPC stats and RPC's are called and counted as appropriate Motivation and Context How Has This Been Tested? UT and putting the changes on the testbed
1 parent d756e1a commit 88f4b89

File tree

2 files changed

+402
-18
lines changed

2 files changed

+402
-18
lines changed

sonic-ycabled/tests/test_y_cable_helper.py

+203-12
Original file line numberDiff line numberDiff line change
@@ -5456,8 +5456,9 @@ def __init__(self):
54565456

54575457

54585458
response = Response_Helper()
5459+
port = "Ethernet4"
54595460

5460-
rc = parse_grpc_response_forwarding_state(False, None, 0)
5461+
rc = parse_grpc_response_forwarding_state(False, None, 0, port)
54615462
assert(rc == ("unknown", "unknown"))
54625463

54635464

@@ -5470,8 +5471,9 @@ def __init__(self):
54705471

54715472

54725473
response = Response_Helper()
5474+
port = "Ethernet4"
54735475

5474-
rc = parse_grpc_response_forwarding_state(True, response, 0)
5476+
rc = parse_grpc_response_forwarding_state(True, response, 0, port)
54755477
assert(rc == ("active", "standby"))
54765478

54775479

@@ -5484,8 +5486,9 @@ def __init__(self):
54845486

54855487

54865488
response = Response_Helper()
5489+
port = "Ethernet4"
54875490

5488-
rc = parse_grpc_response_forwarding_state(True, response, 0)
5491+
rc = parse_grpc_response_forwarding_state(True, response, 0, port)
54895492
assert(rc == ("active", "active"))
54905493

54915494

@@ -5498,8 +5501,9 @@ def __init__(self):
54985501

54995502

55005503
response = Response_Helper()
5504+
port = "Ethernet4"
55015505

5502-
rc = parse_grpc_response_forwarding_state(True, response, 1)
5506+
rc = parse_grpc_response_forwarding_state(True, response, 1, port)
55035507
assert(rc == ("standby", "active"))
55045508

55055509

@@ -5512,8 +5516,9 @@ def __init__(self):
55125516

55135517

55145518
response = Response_Helper()
5519+
port = "Ethernet4"
55155520

5516-
rc = parse_grpc_response_forwarding_state(True, response, 1)
5521+
rc = parse_grpc_response_forwarding_state(True, response, 1, port)
55175522
assert(rc == ("active", "active"))
55185523

55195524

@@ -5526,8 +5531,9 @@ def __init__(self):
55265531

55275532

55285533
response = Response_Helper()
5534+
port = "Ethernet4"
55295535

5530-
rc = parse_grpc_response_forwarding_state(True, response, 1)
5536+
rc = parse_grpc_response_forwarding_state(True, response, 1, port)
55315537
assert(rc == ("active", "active"))
55325538

55335539

@@ -5540,8 +5546,9 @@ def __init__(self):
55405546

55415547

55425548
response = Response_Helper()
5549+
port = "Ethernet4"
55435550

5544-
rc = parse_grpc_response_forwarding_state(True, response, 1)
5551+
rc = parse_grpc_response_forwarding_state(True, response, 1, port)
55455552
assert(rc == ("standby", "active"))
55465553

55475554

@@ -5554,8 +5561,9 @@ def __init__(self):
55545561

55555562

55565563
response = Response_Helper()
5564+
port = "Ethernet4"
55575565

5558-
rc = parse_grpc_response_forwarding_state(True, response, 0)
5566+
rc = parse_grpc_response_forwarding_state(True, response, 0, port)
55595567
assert(rc == ("standby", "active"))
55605568

55615569

@@ -5568,8 +5576,9 @@ def __init__(self):
55685576

55695577

55705578
response = Response_Helper()
5579+
port = "Ethernet4"
55715580

5572-
rc = parse_grpc_response_forwarding_state(True, response, 1)
5581+
rc = parse_grpc_response_forwarding_state(True, response, 1, port)
55735582
assert(rc == ("standby", "standby"))
55745583

55755584

@@ -5582,8 +5591,9 @@ def __init__(self):
55825591

55835592

55845593
response = Response_Helper()
5594+
port = "Ethernet4"
55855595

5586-
rc = parse_grpc_response_forwarding_state(True, response, 0)
5596+
rc = parse_grpc_response_forwarding_state(True, response, 0, port)
55875597
assert(rc == ("standby", "standby"))
55885598

55895599

@@ -5596,8 +5606,9 @@ def __init__(self):
55965606

55975607

55985608
response = Response_Helper()
5609+
port = "Ethernet4"
55995610

5600-
rc = parse_grpc_response_forwarding_state(True, response, 0)
5611+
rc = parse_grpc_response_forwarding_state(True, response, 0, port)
56015612
assert(rc == ("active", "active"))
56025613

56035614

@@ -5610,8 +5621,9 @@ def __init__(self):
56105621

56115622

56125623
response = Response_Helper()
5624+
port = "Ethernet4"
56135625

5614-
rc = parse_grpc_response_forwarding_state(True, response, 1)
5626+
rc = parse_grpc_response_forwarding_state(True, response, 1, port)
56155627
assert(rc == ("standby", "standby"))
56165628

56175629

@@ -5747,3 +5759,182 @@ def test_handle_ycable_active_standby_probe_notification(self):
57475759
rc = handle_ycable_active_standby_probe_notification("active-standby", fvp_dict, test_db, hw_mux_cable_tbl, port_m, asic_index, y_cable_response_tbl)
57485760
assert(rc == True)
57495761

5762+
5763+
def test_parse_grpc_response_link_and_oper_state_down_down(self):
5764+
5765+
class Response_Helper():
5766+
def __init__(self):
5767+
self.portid = [0,1]
5768+
self.state = [False,False]
5769+
5770+
5771+
response = Response_Helper()
5772+
5773+
rc = parse_grpc_response_link_and_oper_state(True, response, 1, "oper_state", "Ethernet4")
5774+
assert(rc == ("down", "down"))
5775+
5776+
def test_parse_grpc_response_link_and_oper_state_up_down(self):
5777+
5778+
class Response_Helper():
5779+
def __init__(self):
5780+
self.portid = [0,1]
5781+
self.state = [True,False]
5782+
5783+
5784+
response = Response_Helper()
5785+
5786+
rc = parse_grpc_response_link_and_oper_state(True, response, 1, "oper_state", "Ethernet4")
5787+
assert(rc == ("down", "up"))
5788+
5789+
def test_parse_grpc_response_link_and_oper_state_up_up(self):
5790+
5791+
class Response_Helper():
5792+
def __init__(self):
5793+
self.portid = [0,1]
5794+
self.state = [True, True]
5795+
5796+
5797+
response = Response_Helper()
5798+
5799+
rc = parse_grpc_response_link_and_oper_state(True, response, 1, "oper_state", "Ethernet4")
5800+
assert(rc == ("up", "up"))
5801+
5802+
def test_parse_grpc_response_link_and_oper_state_down_down_read_side_zero(self):
5803+
5804+
class Response_Helper():
5805+
def __init__(self):
5806+
self.portid = [0,1]
5807+
self.state = [False,False]
5808+
5809+
5810+
response = Response_Helper()
5811+
5812+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "oper_state", "Ethernet4")
5813+
assert(rc == ("down", "down"))
5814+
5815+
def test_parse_grpc_response_link_and_oper_state_up_down_read_side_zero(self):
5816+
5817+
class Response_Helper():
5818+
def __init__(self):
5819+
self.portid = [0,1]
5820+
self.state = [True,False]
5821+
5822+
5823+
response = Response_Helper()
5824+
5825+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "oper_state", "Ethernet4")
5826+
assert(rc == ("up", "down"))
5827+
5828+
def test_parse_grpc_response_link_and_oper_state_up_up_read_side_zero(self):
5829+
5830+
class Response_Helper():
5831+
def __init__(self):
5832+
self.portid = [0,1]
5833+
self.state = [True, True]
5834+
5835+
5836+
response = Response_Helper()
5837+
5838+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "oper_state", "Ethernet4")
5839+
assert(rc == ("up", "up"))
5840+
5841+
def test_parse_grpc_response_link_and_oper_state_down_down_read_side_zero_unknown(self):
5842+
5843+
class Response_Helper():
5844+
def __init__(self):
5845+
self.portid = [0,1]
5846+
self.state = [False,False]
5847+
5848+
5849+
response = Response_Helper()
5850+
5851+
rc = parse_grpc_response_link_and_oper_state(False, response, 0, "oper_state", "Ethernet4")
5852+
assert(rc == ("unknown", "unknown"))
5853+
5854+
def test_parse_grpc_response_link_and_oper_state_up_down_read_side_zero(self):
5855+
5856+
class Response_Helper():
5857+
def __init__(self):
5858+
self.portid = [0]
5859+
self.state = [False]
5860+
5861+
5862+
response = Response_Helper()
5863+
5864+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "oper_state", "Ethernet4")
5865+
assert(rc == ("unknown", "unknown"))
5866+
5867+
def test_parse_grpc_response_link_and_oper_state_up_up_read_side_zero(self):
5868+
5869+
class Response_Helper():
5870+
def __init__(self):
5871+
self.portid = [0,1]
5872+
self.state = [True]
5873+
5874+
5875+
response = Response_Helper()
5876+
5877+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "link_state", "Ethernet4")
5878+
assert(rc == ("unknown", "unknown"))
5879+
5880+
def test_parse_grpc_response_link_and_oper_state_down_down_read_side_zero_link_state(self):
5881+
5882+
class Response_Helper():
5883+
def __init__(self):
5884+
self.portid = [0,1]
5885+
self.state = [False,False]
5886+
5887+
5888+
response = Response_Helper()
5889+
5890+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "link_state", "Ethernet4")
5891+
assert(rc == ("down", "down"))
5892+
5893+
def test_parse_grpc_response_link_and_oper_state_up_down_read_side_zero_link_state(self):
5894+
5895+
class Response_Helper():
5896+
def __init__(self):
5897+
self.portid = [0,1]
5898+
self.state = [True,False]
5899+
5900+
5901+
response = Response_Helper()
5902+
5903+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "link_state", "Ethernet4")
5904+
assert(rc == ("up", "down"))
5905+
5906+
def test_parse_grpc_response_link_and_oper_state_up_up_read_side_zero_link_state(self):
5907+
5908+
class Response_Helper():
5909+
def __init__(self):
5910+
self.portid = [0,1]
5911+
self.state = [True, True]
5912+
5913+
5914+
response = Response_Helper()
5915+
5916+
rc = parse_grpc_response_link_and_oper_state(True, response, 0, "link_state", "Ethernet4")
5917+
assert(rc == ("up", "up"))
5918+
5919+
def test_get_muxcable_info_for_active_active(self):
5920+
physical_port = 20
5921+
5922+
logical_port_name = "Ethernet20"
5923+
swsscommon.Table.return_value.get.return_value = (
5924+
True, {"read_side": "1"})
5925+
asic_index = 0
5926+
y_cable_tbl = {}
5927+
mux_tbl = {}
5928+
test_db = "TEST_DB"
5929+
status = True
5930+
fvs = [('state', "auto"), ('read_side', 1)]
5931+
y_cable_tbl[asic_index] = swsscommon.Table(
5932+
test_db[asic_index], "Y_CABLE_TABLE")
5933+
y_cable_tbl[asic_index].get.return_value = (status, fvs)
5934+
5935+
rc = get_muxcable_info_for_active_active(physical_port, logical_port_name, mux_tbl, asic_index, y_cable_tbl)
5936+
5937+
assert(rc['self_mux_direction'] == 'unknown')
5938+
assert(rc['peer_mux_direction'] == 'unknown')
5939+
assert(rc['mux_direction_probe_count'] == 'unknown')
5940+
assert(rc['peer_mux_direction_probe_count'] == 'unknown')

0 commit comments

Comments
 (0)