@@ -50,8 +50,7 @@ class DbTables(int, Enum):
5050class IfTypes (int , Enum ):
5151 """ IANA ifTypes """
5252 ethernetCsmacd = 6
53- l3ipvlan = 136
54- ieee8023adLag = 161
53+ ieee8023adLag = 161
5554
5655class ArpUpdater (MIBUpdater ):
5756 def __init__ (self ):
@@ -193,13 +192,8 @@ def __init__(self):
193192 self .lag_name_if_name_map = {}
194193 self .if_name_lag_name_map = {}
195194 self .oid_lag_name_map = {}
196- self .lag_sai_map = {}
197195 self .mgmt_oid_name_map = {}
198196 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 = {}
203197
204198 # cache of interface counters
205199 self .if_counters = {}
@@ -208,8 +202,6 @@ def __init__(self):
208202 self .if_alias_map = {}
209203 self .if_id_map = {}
210204 self .oid_name_map = {}
211- self .rif_counters = {}
212-
213205 self .namespace_db_map = Namespace .get_namespace_db_map (self .db_conn )
214206
215207 def reinit_data (self ):
@@ -228,56 +220,26 @@ def reinit_data(self):
228220 self .mgmt_oid_name_map , \
229221 self .mgmt_alias_map = mibs .init_mgmt_interface_tables (self .db_conn [0 ])
230222
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-
238223 def update_data (self ):
239224 """
240225 Update redis (caches config)
241226 Pulls the table references for each interface.
242227 """
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 )
248233
249234 self .lag_name_if_name_map , \
250235 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 )
253237
254238 self .if_range = sorted (list (self .oid_name_map .keys ()) +
255239 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 ()))
258241 self .if_range = [(i ,) for i in self .if_range ]
259242
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-
281243 def get_next (self , sub_id ):
282244 """
283245 :param sub_id: The 1-based sub-identifier query.
@@ -319,8 +281,6 @@ def interface_description(self, sub_id):
319281 return self .oid_lag_name_map [oid ]
320282 elif oid in self .mgmt_oid_name_map :
321283 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 ]
324284
325285 return self .if_alias_map [self .oid_name_map [oid ]]
326286
@@ -336,38 +296,13 @@ def _get_counter(self, oid, table_name):
336296 try :
337297 counter_value = self .if_counters [oid ][_table_name ]
338298 # truncate to 32-bit counter (database implements 64-bit counters)
339- counter_value = counter_value & 0x00000000ffffffff
299+ counter_value = int ( counter_value ) & 0x00000000ffffffff
340300 # done!
341301 return counter_value
342302 except KeyError as e :
343303 mibs .logger .warning ("SyncD 'COUNTERS_DB' missing attribute '{}'." .format (e ))
344304 return None
345305
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-
371306 def get_counter (self , sub_id , table_name ):
372307 """
373308 :param sub_id: The 1-based sub-identifier query.
@@ -387,13 +322,7 @@ def get_counter(self, sub_id, table_name):
387322 counter_value = 0
388323 for lag_member in self .lag_name_if_name_map [self .oid_lag_name_map [oid ]]:
389324 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+
397326 # truncate to 32-bit counter
398327 return counter_value & 0x00000000ffffffff
399328 else :
@@ -423,8 +352,6 @@ def _get_if_entry(self, sub_id):
423352 elif oid in self .mgmt_oid_name_map :
424353 if_table = mibs .mgmt_if_entry_table (self .mgmt_oid_name_map [oid ])
425354 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 ])
428355 elif oid in self .oid_name_map :
429356 if_table = mibs .if_entry_table (self .oid_name_map [oid ])
430357 else :
@@ -529,7 +456,6 @@ def get_if_type(self, sub_id):
529456
530457 ethernetCsmacd(6), -- for all ethernet-like interfaces,
531458 -- regardless of speed, as per RFC3635
532- l3ipvlan(136) -- Layer 3 Virtual LAN using IP
533459 ieee8023adLag(161) -- IEEE 802.3ad Link Aggregate
534460 """
535461 oid = self .get_oid (sub_id )
@@ -538,8 +464,6 @@ def get_if_type(self, sub_id):
538464
539465 if oid in self .oid_lag_name_map :
540466 return IfTypes .ieee8023adLag
541- elif oid in self .vlan_oid_name_map :
542- return IfTypes .l3ipvlan
543467 else :
544468 return IfTypes .ethernetCsmacd
545469
0 commit comments