@@ -50,8 +50,7 @@ class DbTables(int, Enum):
50
50
class IfTypes (int , Enum ):
51
51
""" IANA ifTypes """
52
52
ethernetCsmacd = 6
53
- l3ipvlan = 136
54
- ieee8023adLag = 161
53
+ ieee8023adLag = 161
55
54
56
55
class ArpUpdater (MIBUpdater ):
57
56
def __init__ (self ):
@@ -193,13 +192,8 @@ def __init__(self):
193
192
self .lag_name_if_name_map = {}
194
193
self .if_name_lag_name_map = {}
195
194
self .oid_lag_name_map = {}
196
- self .lag_sai_map = {}
197
195
self .mgmt_oid_name_map = {}
198
196
self .mgmt_alias_map = {}
199
- self .vlan_oid_name_map = {}
200
- self .vlan_name_map = {}
201
- self .rif_port_map = {}
202
- self .port_rif_map = {}
203
197
204
198
# cache of interface counters
205
199
self .if_counters = {}
@@ -208,8 +202,6 @@ def __init__(self):
208
202
self .if_alias_map = {}
209
203
self .if_id_map = {}
210
204
self .oid_name_map = {}
211
- self .rif_counters = {}
212
-
213
205
self .namespace_db_map = Namespace .get_namespace_db_map (self .db_conn )
214
206
215
207
def reinit_data (self ):
@@ -228,56 +220,26 @@ def reinit_data(self):
228
220
self .mgmt_oid_name_map , \
229
221
self .mgmt_alias_map = mibs .init_mgmt_interface_tables (self .db_conn [0 ])
230
222
231
- self .vlan_name_map , \
232
- self .vlan_oid_sai_map , \
233
- self .vlan_oid_name_map = Namespace .get_sync_d_from_all_namespace (mibs .init_sync_d_vlan_tables , self .db_conn )
234
-
235
- self .rif_port_map , \
236
- self .port_rif_map = Namespace .get_sync_d_from_all_namespace (mibs .init_sync_d_rif_tables , self .db_conn )
237
-
238
223
def update_data (self ):
239
224
"""
240
225
Update redis (caches config)
241
226
Pulls the table references for each interface.
242
227
"""
243
-
244
- self . update_if_counters ( )
245
- self . update_rif_counters ( )
246
-
247
- self . aggregate_counters ( )
228
+ for sai_id_key in self . if_id_map :
229
+ namespace , sai_id = mibs . split_sai_id_key ( sai_id_key )
230
+ if_idx = mibs . get_index_from_str ( self . if_id_map [ sai_id_key ] )
231
+ self . if_counters [ if_idx ] = self . namespace_db_map [ namespace ]. get_all ( mibs . COUNTERS_DB , \
232
+ mibs . counter_table ( sai_id ), blocking = True )
248
233
249
234
self .lag_name_if_name_map , \
250
235
self .if_name_lag_name_map , \
251
- self .oid_lag_name_map , \
252
- self .lag_sai_map = Namespace .get_sync_d_from_all_namespace (mibs .init_sync_d_lag_tables , self .db_conn )
236
+ self .oid_lag_name_map = Namespace .get_sync_d_from_all_namespace (mibs .init_sync_d_lag_tables , self .db_conn )
253
237
254
238
self .if_range = sorted (list (self .oid_name_map .keys ()) +
255
239
list (self .oid_lag_name_map .keys ()) +
256
- list (self .mgmt_oid_name_map .keys ()) +
257
- list (self .vlan_oid_name_map .keys ()))
240
+ list (self .mgmt_oid_name_map .keys ()))
258
241
self .if_range = [(i ,) for i in self .if_range ]
259
242
260
- def update_if_counters (self ):
261
- for sai_id_key in self .if_id_map :
262
- namespace , sai_id = mibs .split_sai_id_key (sai_id_key )
263
- if_idx = mibs .get_index_from_str (self .if_id_map [sai_id_key ])
264
- counters_db_data = self .namespace_db_map [namespace ].get_all (mibs .COUNTERS_DB ,
265
- mibs .counter_table (sai_id ),
266
- blocking = True )
267
- self .if_counters [if_idx ] = {
268
- counter : int (value ) for counter , value in counters_db_data .items ()
269
- }
270
-
271
- def update_rif_counters (self ):
272
- rif_sai_ids = list (self .rif_port_map ) + list (self .vlan_name_map )
273
- for sai_id in rif_sai_ids :
274
- counters_db_data = Namespace .dbs_get_all (self .db_conn , mibs .COUNTERS_DB ,
275
- mibs .counter_table (mibs .split_sai_id_key (sai_id )[1 ]),
276
- blocking = False )
277
- self .rif_counters [sai_id ] = {
278
- counter : int (value ) for counter , value in counters_db_data .items ()
279
- }
280
-
281
243
def get_next (self , sub_id ):
282
244
"""
283
245
:param sub_id: The 1-based sub-identifier query.
@@ -319,8 +281,6 @@ def interface_description(self, sub_id):
319
281
return self .oid_lag_name_map [oid ]
320
282
elif oid in self .mgmt_oid_name_map :
321
283
return self .mgmt_alias_map [self .mgmt_oid_name_map [oid ]]
322
- elif oid in self .vlan_oid_name_map :
323
- return self .vlan_oid_name_map [oid ]
324
284
325
285
return self .if_alias_map [self .oid_name_map [oid ]]
326
286
@@ -336,38 +296,13 @@ def _get_counter(self, oid, table_name):
336
296
try :
337
297
counter_value = self .if_counters [oid ][_table_name ]
338
298
# truncate to 32-bit counter (database implements 64-bit counters)
339
- counter_value = counter_value & 0x00000000ffffffff
299
+ counter_value = int ( counter_value ) & 0x00000000ffffffff
340
300
# done!
341
301
return counter_value
342
302
except KeyError as e :
343
303
mibs .logger .warning ("SyncD 'COUNTERS_DB' missing attribute '{}'." .format (e ))
344
304
return None
345
305
346
- def aggregate_counters (self ):
347
- """
348
- For ports with l3 router interfaces l3 drops may be counted separately (RIF counters)
349
- add l3 drops to l2 drop counters cache according to mapping
350
-
351
- For l3vlan map l3 counters to l2 counters
352
- """
353
- for rif_sai_id , port_sai_id in self .rif_port_map .items ():
354
- if port_sai_id in self .if_id_map :
355
- port_idx = mibs .get_index_from_str (self .if_id_map [port_sai_id ])
356
- for port_counter_name , rif_counter_name in mibs .RIF_DROPS_AGGR_MAP .items ():
357
- self .if_counters [port_idx ][port_counter_name ] = \
358
- self .if_counters [port_idx ][port_counter_name ] + \
359
- self .rif_counters [rif_sai_id ][rif_counter_name ]
360
-
361
- for vlan_sai_id , vlan_name in self .vlan_name_map .items ():
362
- for port_counter_name , rif_counter_name in mibs .RIF_COUNTERS_AGGR_MAP .items ():
363
- vlan_idx = mibs .get_index_from_str (vlan_name )
364
- vlan_rif_counters = self .rif_counters [vlan_sai_id ]
365
- if rif_counter_name in vlan_rif_counters :
366
- self .if_counters .setdefault (vlan_idx , {})
367
- self .if_counters [vlan_idx ][port_counter_name ] = \
368
- vlan_rif_counters [rif_counter_name ]
369
-
370
-
371
306
def get_counter (self , sub_id , table_name ):
372
307
"""
373
308
:param sub_id: The 1-based sub-identifier query.
@@ -387,13 +322,7 @@ def get_counter(self, sub_id, table_name):
387
322
counter_value = 0
388
323
for lag_member in self .lag_name_if_name_map [self .oid_lag_name_map [oid ]]:
389
324
counter_value += self ._get_counter (mibs .get_index_from_str (lag_member ), table_name )
390
- sai_lag_id = self .lag_sai_map [self .oid_lag_name_map [oid ]]
391
- sai_lag_rif_id = self .port_rif_map [sai_lag_id ]
392
- if sai_lag_rif_id in self .rif_port_map :
393
- table_name = getattr (table_name , 'name' , table_name )
394
- if table_name in mibs .RIF_DROPS_AGGR_MAP :
395
- rif_table_name = mibs .RIF_DROPS_AGGR_MAP [table_name ]
396
- counter_value += self .rif_counters [sai_lag_rif_id ].get (rif_table_name , 0 )
325
+
397
326
# truncate to 32-bit counter
398
327
return counter_value & 0x00000000ffffffff
399
328
else :
@@ -423,8 +352,6 @@ def _get_if_entry(self, sub_id):
423
352
elif oid in self .mgmt_oid_name_map :
424
353
if_table = mibs .mgmt_if_entry_table (self .mgmt_oid_name_map [oid ])
425
354
db = mibs .CONFIG_DB
426
- elif oid in self .vlan_oid_name_map :
427
- if_table = mibs .vlan_entry_table (self .vlan_oid_name_map [oid ])
428
355
elif oid in self .oid_name_map :
429
356
if_table = mibs .if_entry_table (self .oid_name_map [oid ])
430
357
else :
@@ -529,7 +456,6 @@ def get_if_type(self, sub_id):
529
456
530
457
ethernetCsmacd(6), -- for all ethernet-like interfaces,
531
458
-- regardless of speed, as per RFC3635
532
- l3ipvlan(136) -- Layer 3 Virtual LAN using IP
533
459
ieee8023adLag(161) -- IEEE 802.3ad Link Aggregate
534
460
"""
535
461
oid = self .get_oid (sub_id )
@@ -538,8 +464,6 @@ def get_if_type(self, sub_id):
538
464
539
465
if oid in self .oid_lag_name_map :
540
466
return IfTypes .ieee8023adLag
541
- elif oid in self .vlan_oid_name_map :
542
- return IfTypes .l3ipvlan
543
467
else :
544
468
return IfTypes .ethernetCsmacd
545
469
0 commit comments