diff options
author | Jakub Grajciar <jgrajcia@cisco.com> | 2020-03-02 13:16:53 +0100 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2020-03-12 12:28:47 +0000 |
commit | cd01fb4237b78a1805e1dd4b018bd03eb342580c (patch) | |
tree | ec01ce74afa4a061bd9575f23101a31e589fa65f /test/vpp_policer.py | |
parent | f52420d507f0ff810f5146b7153781e313d7bc07 (diff) |
policer: API cleanup
Use consistent API types.
Type: fix
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ia14f33992353b419b70b55beed63ab8ed6a2e837
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Diffstat (limited to 'test/vpp_policer.py')
-rw-r--r-- | test/vpp_policer.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/vpp_policer.py b/test/vpp_policer.py new file mode 100644 index 00000000000..49d11859646 --- /dev/null +++ b/test/vpp_policer.py @@ -0,0 +1,69 @@ +from vpp_object import VppObject +from vpp_ip import INVALID_INDEX + + +class PolicerAction(): + """ sse2 qos action """ + + def __init__(self, type, dscp): + self.type = type + self.dscp = dscp + + def encode(self): + return {'type': self.type, 'dscp': self.dscp} + + +class VppPolicer(VppObject): + """ Policer """ + + def __init__(self, test, name, cir, eir, commited_burst, excess_burst, + rate_type=0, round_type=0, type=0, color_aware=False, + conform_action=PolicerAction(1, 0), + exceed_action=PolicerAction(0, 0), + violate_action=PolicerAction(0, 0)): + self._test = test + self.name = name + self.cir = cir + self.eir = eir + self.commited_burst = commited_burst + self.excess_burst = excess_burst + self.rate_type = rate_type + self.round_type = round_type + self.type = type + self.color_aware = color_aware + self.conform_action = conform_action + self.exceed_action = exceed_action + self.violate_action = violate_action + self._policer_index = INVALID_INDEX + + @property + def policer_index(self): + return self._policer_index + + def add_vpp_config(self): + r = self._test.vapi.policer_add_del( + name=self.name, cir=self.cir, + eir=self.eir, cb=self.commited_burst, eb=self.excess_burst, + rate_type=self.rate_type, round_type=self.round_type, + type=self.type, color_aware=self.color_aware, + conform_action=self.conform_action.encode(), + exceed_action=self.exceed_action.encode(), + violate_action=self.violate_action.encode()) + self._test.registry.register(self, self._test.logger) + self._policer_index = r.policer_index + return self + + def remove_vpp_config(self): + self._test.vapi.policer_add_del(is_add=False, name=self.name) + self._policer_index = INVALID_INDEX + + def query_vpp_config(self): + dump = self._test.vapi.policer_dump( + match_name_valid=True, match_name=self.name) + for policer in dump: + if policer.name == self.name: + return True + return False + + def object_id(self): + return ("policer-%s" % (self.name)) |