On 1/31/22 20:07, James Troup wrote:
Adrian Moreno <amore...@redhat.com> writes:

diff --git a/python/ovs/flows/decoders.py b/python/ovs/flows/decoders.py
index 73d5c0c60..2f8e5bd0a 100644
--- a/python/ovs/flows/decoders.py
+++ b/python/ovs/flows/decoders.py
@@ -16,3 +25,392 @@ def decode_default(value):
          return int(value, 0)
      except ValueError:
          return value
+
+
+def decode_flag(value):
+    """Decode a flag. It's existance is just flagged by returning True."""

'existence'

+    return True
+
+
+def decode_int(value):
+    """Integer decoder.
+
+    Both base10 and base16 integers are supported.

Is this true?  If `value` is a string, it isn't.  int("0x4") throws an
exception but int(0x4) doesn't.

+    Used for fields such as:
+        n_bytes=34
+        metadata=0x4
+    """
+    return int(value, 0)

[...]

+class IntMask(Decoder):
+    """Base class for Integer Mask decoder classes.
+
+    It supports decoding a value/mask pair. The class has to be derived,
+    and the size attribute must be set.
+    """
+
+    size = None  # Size in bits.
+
+    def __init__(self, string):
+        if not self.size:
+            raise NotImplementedError(
+                "IntMask should be derived and " "size should be fixed"
+            )

Any reason not to join the strings here?

+class EthMask(Decoder):
+    """EthMask represents an Ethernet address with optional mask.

This is nitpicky, but the capitalisation of Ethernet is inconsistent
throughout this function; it'd be nice to clean it up.


[...]

+    def __eq__(self, other):
+        """Equality operator.
+
+        Both the Ethernet address and the mask are compared. This can be used
+        to implement filters where we expecte a specific mask to be present,

'expect'


[...]

+class IPMask(Decoder):
+    """IPMask stores an IPv6 or IPv4 and a mask.
+
+    It uses netaddr.IPAddress.
+
+    IPMasks can represent valid CIDRs or randomly maked IP Addresses.

'masked'?

+    def __contains__(self, other):
+        """Contains operator.
+
+        Only comparing valid CIDRs is supported.
+
+        Args:
+            other (netaddr.IPAddres or IPMask): An IP address.

'netaddr.IPAddress'



Thanks James,

I'll fix all the typos in the next version.

--
Adrián Moreno

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to