@@ -1251,8 +1251,9 @@ class _MeterConfig:
12511251 def attrs ():
12521252 return ["cir" , "cburst" , "pir" , "pburst" , "eburst" ]
12531253
1254- def __init__ (self , meter_name , meter_type ):
1254+ def __init__ (self , meter_name , meter_unit , meter_type ):
12551255 self ._meter_name = meter_name
1256+ self ._meter_unit = meter_unit
12561257 self ._meter_type = meter_type
12571258 self ._msg = p4runtime_pb2 .MeterConfig ()
12581259 self ._attrs = _MeterConfig .attrs ()
@@ -1288,18 +1289,18 @@ def _repr_pretty_(self, p, cycle):
12881289 p .text (str (self .msg ()))
12891290
12901291 @classmethod
1291- def set_param (cls , instance , meter_name , meter_type , name , value ):
1292+ def set_param (cls , instance , meter_name , meter_unit , meter_type , name , value ):
12921293 if instance is None :
1293- d = cls (meter_name , meter_type )
1294+ d = cls (meter_name , meter_unit , meter_type )
12941295 else :
12951296 d = instance
12961297 setattr (d , name , value )
12971298 return d
12981299
12991300 @classmethod
1300- def get_param (cls , instance , meter_name , meter_type , name ):
1301+ def get_param (cls , instance , meter_name , meter_unit , meter_type , name ):
13011302 if instance is None :
1302- d = cls (meter_name , meter_type )
1303+ d = cls (meter_name , meter_unit , meter_type )
13031304 else :
13041305 d = instance
13051306 r = getattr (d , name )
@@ -1662,7 +1663,7 @@ def __getattr__(self, name):
16621663 raise UserError ("Table has no direct meter" )
16631664 if self ._meter_config is None :
16641665 self ._meter_config = _MeterConfig (
1665- self ._direct_meter .preamble .name , self ._direct_meter .spec .unit )
1666+ self ._direct_meter .preamble .name , self ._direct_meter .spec .unit , self . _direct_meter . spec . type )
16661667 return self ._meter_config
16671668 if name == "time_since_last_hit" :
16681669 if self ._idle_timeout_behavior is None :
@@ -1716,7 +1717,7 @@ def _from_msg(self, msg):
17161717 self ._counter_data = None
17171718 if msg .HasField ('meter_config' ):
17181719 self ._meter_config = _MeterConfig (
1719- self ._direct_meter .preamble .name , self ._direct_meter .spec .unit )
1720+ self ._direct_meter .preamble .name , self ._direct_meter .spec .unit , self . _direct_meter . spec . type )
17201721 self ._meter_config ._from_msg (msg .meter_config )
17211722 else :
17221723 self ._meter_config = None
@@ -2012,7 +2013,8 @@ def read(self, function=None):
20122013class _MeterEntryBase (_P4EntityBase ):
20132014 def __init__ (self , * args , ** kwargs ):
20142015 super ().__init__ (* args , ** kwargs )
2015- self ._meter_type = self ._info .spec .unit
2016+ self ._meter_unit = self ._info .spec .unit
2017+ self ._meter_type = self ._info .spec .type
20162018 self ._config = None
20172019
20182020 def __dir__ (self ):
@@ -2031,7 +2033,7 @@ def __setattr__(self, name, value):
20312033 raise UserError ("Cannot change meter name" )
20322034 if name in _MeterConfig .attrs ():
20332035 self ._config = _MeterConfig .set_param (
2034- self ._config , self .name , self ._meter_type , name , value )
2036+ self ._config , self .name , self ._meter_unit , self . _meter_type , name , value )
20352037 return
20362038 if name == "config" :
20372039 if value is None :
@@ -2043,18 +2045,18 @@ def __setattr__(self, name, value):
20432045 def __getattr__ (self , name ):
20442046 if name in _MeterConfig .attrs ():
20452047 self ._config , r = _MeterConfig .get_param (
2046- self ._config , self .name , self ._meter_type , name )
2048+ self ._config , self .name , self ._meter_unit , self . _meter_type , name )
20472049 return r
20482050 if name == "config" :
20492051 if self ._config is None :
2050- self ._config = _MeterConfig (self .name , self ._meter_type )
2052+ self ._config = _MeterConfig (self .name , self ._meter_unit , self . _meter_type )
20512053 return self ._config
20522054 return super ().__getattr__ (name )
20532055
20542056 def _from_msg (self , msg ):
20552057 self ._entry .CopyFrom (msg )
20562058 if msg .HasField ('config' ):
2057- self ._config = _MeterConfig (self .name , self ._meter_type )
2059+ self ._config = _MeterConfig (self .name , self ._meter_unit , self . _meter_type )
20582060 self ._config ._from_msg (msg .config )
20592061 else :
20602062 self ._config = None
0 commit comments