summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ryu/lib/ofctl_v1_2.py13
-rw-r--r--ryu/lib/ofctl_v1_3.py13
2 files changed, 4 insertions, 22 deletions
diff --git a/ryu/lib/ofctl_v1_2.py b/ryu/lib/ofctl_v1_2.py
index 273b387c..6b1d4478 100644
--- a/ryu/lib/ofctl_v1_2.py
+++ b/ryu/lib/ofctl_v1_2.py
@@ -326,17 +326,8 @@ def to_match_tpdst(value, match, rest):
def to_match_ip(value):
- ip_mask = value.split('/')
- # ip
- ipv4 = struct.unpack('!I', socket.inet_aton(ip_mask[0]))[0]
- # netmask
- mask = 32
- if len(ip_mask) == 2:
- mask = int(ip_mask[1])
- netmask = ofproto_v1_2_parser.UINT32_MAX << 32 - mask\
- & ofproto_v1_2_parser.UINT32_MAX
-
- return ipv4, netmask
+ ip = netaddr.IPNetwork(value)
+ return ip.ip.value, ip.netmask.value
def to_match_ipv6(value):
diff --git a/ryu/lib/ofctl_v1_3.py b/ryu/lib/ofctl_v1_3.py
index 3e2713e8..403c82e2 100644
--- a/ryu/lib/ofctl_v1_3.py
+++ b/ryu/lib/ofctl_v1_3.py
@@ -368,17 +368,8 @@ def to_match_tpdst(value, match, rest):
def to_match_ip(value):
- ip_mask = value.split('/')
- # ip
- ipv4 = struct.unpack('!I', socket.inet_aton(ip_mask[0]))[0]
- # netmask
- mask = 32
- if len(ip_mask) == 2:
- mask = int(ip_mask[1])
- netmask = ofproto_v1_3_parser.UINT32_MAX << 32 - mask\
- & ofproto_v1_3_parser.UINT32_MAX
-
- return ipv4, netmask
+ ip = netaddr.IPNetwork(value)
+ return ip.ip.value, ip.netmask.value
def to_match_ipv6(value):