@@ -1251,8 +1251,9 @@ class _MeterConfig:
1251
1251
def attrs ():
1252
1252
return ["cir" , "cburst" , "pir" , "pburst" , "eburst" ]
1253
1253
1254
- def __init__ (self , meter_name , meter_type ):
1254
+ def __init__ (self , meter_name , meter_unit , meter_type ):
1255
1255
self ._meter_name = meter_name
1256
+ self ._meter_unit = meter_unit
1256
1257
self ._meter_type = meter_type
1257
1258
self ._msg = p4runtime_pb2 .MeterConfig ()
1258
1259
self ._attrs = _MeterConfig .attrs ()
@@ -1288,18 +1289,18 @@ def _repr_pretty_(self, p, cycle):
1288
1289
p .text (str (self .msg ()))
1289
1290
1290
1291
@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 ):
1292
1293
if instance is None :
1293
- d = cls (meter_name , meter_type )
1294
+ d = cls (meter_name , meter_unit , meter_type )
1294
1295
else :
1295
1296
d = instance
1296
1297
setattr (d , name , value )
1297
1298
return d
1298
1299
1299
1300
@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 ):
1301
1302
if instance is None :
1302
- d = cls (meter_name , meter_type )
1303
+ d = cls (meter_name , meter_unit , meter_type )
1303
1304
else :
1304
1305
d = instance
1305
1306
r = getattr (d , name )
@@ -1662,7 +1663,7 @@ def __getattr__(self, name):
1662
1663
raise UserError ("Table has no direct meter" )
1663
1664
if self ._meter_config is None :
1664
1665
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 )
1666
1667
return self ._meter_config
1667
1668
if name == "time_since_last_hit" :
1668
1669
if self ._idle_timeout_behavior is None :
@@ -1716,7 +1717,7 @@ def _from_msg(self, msg):
1716
1717
self ._counter_data = None
1717
1718
if msg .HasField ('meter_config' ):
1718
1719
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 )
1720
1721
self ._meter_config ._from_msg (msg .meter_config )
1721
1722
else :
1722
1723
self ._meter_config = None
@@ -2012,7 +2013,8 @@ def read(self, function=None):
2012
2013
class _MeterEntryBase (_P4EntityBase ):
2013
2014
def __init__ (self , * args , ** kwargs ):
2014
2015
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
2016
2018
self ._config = None
2017
2019
2018
2020
def __dir__ (self ):
@@ -2031,7 +2033,7 @@ def __setattr__(self, name, value):
2031
2033
raise UserError ("Cannot change meter name" )
2032
2034
if name in _MeterConfig .attrs ():
2033
2035
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 )
2035
2037
return
2036
2038
if name == "config" :
2037
2039
if value is None :
@@ -2043,18 +2045,18 @@ def __setattr__(self, name, value):
2043
2045
def __getattr__ (self , name ):
2044
2046
if name in _MeterConfig .attrs ():
2045
2047
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 )
2047
2049
return r
2048
2050
if name == "config" :
2049
2051
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 )
2051
2053
return self ._config
2052
2054
return super ().__getattr__ (name )
2053
2055
2054
2056
def _from_msg (self , msg ):
2055
2057
self ._entry .CopyFrom (msg )
2056
2058
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 )
2058
2060
self ._config ._from_msg (msg .config )
2059
2061
else :
2060
2062
self ._config = None
0 commit comments