From 750c41f163ef2887bbe26051aee21aaae6c12a9c Mon Sep 17 00:00:00 2001 From: fpfeng Date: Mon, 24 Jul 2023 11:54:55 +0800 Subject: [PATCH 1/4] fix: TPLD_ID filter setting of chimera --- .../hli_v2/ports/port_l23/chimera/filter_definition/general.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py b/xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py index becfc58c..9a44d44f 100644 --- a/xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +++ b/xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py @@ -204,7 +204,7 @@ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_i class FTpld: """Filter for Xena TPLD field.""" def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int, filter_type: FilterType) -> None: - self.settings = prevent_set(PEF_TPLDSETTINGS(conn, module_id, port_id, flow_index, filter_type)) + self.settings = prevent_set(PEF_TPLDSETTINGS(conn, module_id, port_id, flow_index, filter_type), filter_type) """Filter action on Xena TPLD field. Representation of PEF_TPLDSETTINGS """ From db55166ea2bc12fe76ece8f87f29ad7b7ad568f0 Mon Sep 17 00:00:00 2001 From: Leonard Yu Date: Tue, 1 Aug 2023 01:20:23 +0200 Subject: [PATCH 2/4] refactor: Change L3PlusPresent to L3Present --- xoa_driver/enums.py | 4 ++-- xoa_driver/internals/commands/enums.py | 2 +- xoa_driver/internals/commands/pef_commands.py | 16 ++++++++-------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/xoa_driver/enums.py b/xoa_driver/enums.py index c5b45fcb..72eb4893 100644 --- a/xoa_driver/enums.py +++ b/xoa_driver/enums.py @@ -42,7 +42,7 @@ IsValid, LinkTrainFrameLock, L2PlusPresent, - L3PlusPresent, + L3Present, L47IPVersion, L47PortSpeed, L47PortState, @@ -210,7 +210,7 @@ "IsValid", "LinkTrainFrameLock", "L2PlusPresent", - "L3PlusPresent", + "L3Present", "L47IPVersion", "L47PortSpeed", "L47PortState", diff --git a/xoa_driver/internals/commands/enums.py b/xoa_driver/internals/commands/enums.py index f0b16e98..11565bc8 100644 --- a/xoa_driver/internals/commands/enums.py +++ b/xoa_driver/internals/commands/enums.py @@ -1781,7 +1781,7 @@ class L2PlusPresent(IntEnum): """MPLS label is present""" -class L3PlusPresent(IntEnum): +class L3Present(IntEnum): """Presence of Layer-3 protocols""" NA = 0 diff --git a/xoa_driver/internals/commands/pef_commands.py b/xoa_driver/internals/commands/pef_commands.py index 00d5c0f6..2d0912a7 100644 --- a/xoa_driver/internals/commands/pef_commands.py +++ b/xoa_driver/internals/commands/pef_commands.py @@ -30,7 +30,7 @@ FilterUse, InfoAction, L2PlusPresent, - L3PlusPresent, + L3Present, FilterMode, FilterType, FilterVlanType, @@ -797,11 +797,11 @@ class PEF_L3USE: _filter_type: FilterType class GetDataAttr(ResponseBodyStruct): - use: L3PlusPresent = field(XmpByte()) + use: L3Present = field(XmpByte()) """coded byte, specifies the presence of Layer 3 protocols:""" class SetDataAttr(RequestBodyStruct): - use: L3PlusPresent = field(XmpByte()) + use: L3Present = field(XmpByte()) """coded byte, specifies the presence of Layer 3 protocols:""" def get(self) -> Token[GetDataAttr]: @@ -813,22 +813,22 @@ def get(self) -> Token[GetDataAttr]: return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex, self._filter_type])) - def set(self, use: L3PlusPresent) -> Token[None]: + def set(self, use: L3Present) -> Token[None]: """Set Layer 3 protocols settings for the filter. :param use: specifies the presence of Layer 3 protocols - :type use: L3PlusPresent + :type use: L3Present """ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex, self._filter_type], use=use)) - set_na = functools.partialmethod(set, L3PlusPresent.NA) + set_na = functools.partialmethod(set, L3Present.NA) """Set Layer 3 protocol presence to NA.""" - set_ip4 = functools.partialmethod(set, L3PlusPresent.IP4) + set_ip4 = functools.partialmethod(set, L3Present.IP4) """Set Layer 3 protocol presence to IPv4.""" - set_ip6 = functools.partialmethod(set, L3PlusPresent.IP6) + set_ip6 = functools.partialmethod(set, L3Present.IP6) """Set Layer 3 protocol presence to IPv6.""" From 2ed21fd910bda08e0433dd1f3fb814b3cda03d58 Mon Sep 17 00:00:00 2001 From: Leonard Yu Date: Tue, 1 Aug 2023 01:52:16 +0200 Subject: [PATCH 3/4] Update version to 2.1.3 --- xoa_driver/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xoa_driver/__init__.py b/xoa_driver/__init__.py index 2b1ec24b..277dde4e 100644 --- a/xoa_driver/__init__.py +++ b/xoa_driver/__init__.py @@ -1,2 +1,2 @@ -__version__ = "2.1.2" +__version__ = "2.1.3" __short_version__ = "2.0" From 5bec87c5dcaa26eacc842348c316b964f959b9b1 Mon Sep 17 00:00:00 2001 From: Leonard Yu Date: Tue, 1 Aug 2023 13:22:05 +0200 Subject: [PATCH 4/4] fix: Change PEF_IPV6TC's value type to int --- xoa_driver/internals/commands/pef_commands.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xoa_driver/internals/commands/pef_commands.py b/xoa_driver/internals/commands/pef_commands.py index 2d0912a7..f06e6c90 100644 --- a/xoa_driver/internals/commands/pef_commands.py +++ b/xoa_driver/internals/commands/pef_commands.py @@ -1294,7 +1294,7 @@ class PEF_IPV6TC: class GetDataAttr(ResponseBodyStruct): use: OnOff = field(XmpByte()) """coded byte, specifies the use of IPv6 information.""" - value: ipaddress.IPv6Address = field(XmpIPv6Address()) + value: int = field(XmpByte()) """byte, specifying the value of the IPv6 Traffic Class in the upper 6 bits. value[7:2] = IPv6 Traffic Class. value[1:0] = reserved (must be zero). Default value: 0""" mask: Hex = field(XmpHex(size=1)) """hex byte, specifying the filter mask for the value in the upper 6 bits. mask[7:2] = IPv6 Traffic Class mask. mask[1:0] = reserved (must be zero). Default value: 0xFC""" @@ -1302,7 +1302,7 @@ class GetDataAttr(ResponseBodyStruct): class SetDataAttr(RequestBodyStruct): use: OnOff = field(XmpByte()) """coded byte, specifies the use of IPv6 information.""" - value: ipaddress.IPv6Address = field(XmpIPv6Address()) + value: int = field(XmpByte()) """byte, specifying the value of the IPv6 Traffic Class in the upper 6 bits. value[7:2] = IPv6 Traffic Class. value[1:0] = reserved (must be zero). Default value: 0""" mask: Hex = field(XmpHex(size=1)) """hex byte, specifying the filter mask for the value in the upper 6 bits. mask[7:2] = IPv6 Traffic Class mask. mask[1:0] = reserved (must be zero). Default value: 0xFC""" @@ -1316,13 +1316,13 @@ def get(self) -> Token[GetDataAttr]: return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex, self._filter_type])) - def set(self, use: OnOff, value: ipaddress.IPv6Address, mask: Hex) -> Token[None]: + def set(self, use: OnOff, value: int, mask: Hex) -> Token[None]: """Set IPv6 Traffic Class settings used for the filter. :param use: specifies the use of the IPv6 Traffic Class information. :type use: OnOff :param value: specifying the value of the IPv6 Traffic Class in the upper 6 bits. value[7:2] = IPv6 Traffic Class. value[1:0] = reserved (must be zero). Default value: 0 - :type value: ipaddress.IPv6Address + :type value: int :param mask: specifying the filter mask for the value in the upper 6 bits. mask[7:2] = IPv6 Traffic Class mask. mask[1:0] = reserved (must be zero). Default value: 0xFC :type mask: Hex """