X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_policer.py;h=b48f4c6af1c5beb270f0f872a1ed4ed3251d1d95;hb=e3f59e2ae2201ba3007757b7567a3baa41e22879;hp=b0097b370e5ed63170b4d4be096d2ee674caa4c6;hpb=d9b0c6fbf7aa5bd9af84264105b39c82028a4a29;p=vpp.git diff --git a/test/vpp_policer.py b/test/vpp_policer.py index b0097b370e5..b48f4c6af1c 100644 --- a/test/vpp_policer.py +++ b/test/vpp_policer.py @@ -57,46 +57,54 @@ class VppPolicer(VppObject): def policer_index(self): return self._policer_index + @property + def config(self): + return { + "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(), + } + 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(), - ) + r = self._test.vapi.policer_add(name=self.name, infos=self.config) self._test.registry.register(self, self._test.logger) self._policer_index = r.policer_index return self + def update(self): + self._test.vapi.policer_update( + policer_index=self._policer_index, infos=self.config + ) + def remove_vpp_config(self): - self._test.vapi.policer_add_del(is_add=False, name=self.name) + self._test.vapi.policer_del(policer_index=self._policer_index) self._policer_index = INVALID_INDEX def bind_vpp_config(self, worker, bind): - self._test.vapi.policer_bind( - name=self.name, worker_index=worker, bind_enable=bind + self._test.vapi.policer_bind_v2( + policer_index=self._policer_index, worker_index=worker, bind_enable=bind ) def apply_vpp_config(self, if_index, dir: Dir, apply): if dir == Dir.RX: - self._test.vapi.policer_input( - name=self.name, sw_if_index=if_index, apply=apply + self._test.vapi.policer_input_v2( + policer_index=self._policer_index, sw_if_index=if_index, apply=apply ) else: - self._test.vapi.policer_output( - name=self.name, sw_if_index=if_index, apply=apply + self._test.vapi.policer_output_v2( + policer_index=self._policer_index, sw_if_index=if_index, apply=apply ) def query_vpp_config(self): - dump = self._test.vapi.policer_dump(match_name_valid=True, match_name=self.name) + dump = self._test.vapi.policer_dump_v2(policer_index=self._policer_index) for policer in dump: if policer.name == self.name: return True @@ -105,6 +113,13 @@ class VppPolicer(VppObject): def object_id(self): return "policer-%s" % (self.name) + def get_details(self): + dump = self._test.vapi.policer_dump_v2(policer_index=self._policer_index) + for policer in dump: + if policer.name == self.name: + return policer + raise self._test.vapi.VPPValueError("Missing policer") + def get_stats(self, worker=None): conform = self._test.statistics.get_counter("/net/policer/conform") exceed = self._test.statistics.get_counter("/net/policer/exceed")