summaryrefslogtreecommitdiffstats
path: root/test/vpp_ip.py
diff options
context:
space:
mode:
authorPaul Vinciguerra <pvinci@vinciconsulting.com>2019-01-29 11:51:44 -0800
committerOle Trøan <otroan@employees.org>2019-02-01 08:51:59 +0000
commit9e315958d6c9654a988439ae463b1a85cd03bebb (patch)
tree523bd5314193568a3e2aeca29d92b0bba695a1fb /test/vpp_ip.py
parentf646d74392490cf162a615badb92f62b573c694d (diff)
VTL: Fix issue with ipaddress library use under python2.
If you pass in a non-unicode 4-byte ipv6 address to ip_address, ipaddress interprets this as an IPv4Address. Under python2, ip_address interprets 'a7::' as a packed ipv4: 97.55.58.58 You can test with: --- import ipaddress try: text_type = unicode except NameError: text_type = str addr = ipaddress.ip_address('a7::') print(addr) --- Change-Id: I06c561e0ab7315869cc89d0bb08c05e743a90982 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Diffstat (limited to 'test/vpp_ip.py')
-rw-r--r--test/vpp_ip.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/test/vpp_ip.py b/test/vpp_ip.py
index fe985fb901c..8b7ea222a67 100644
--- a/test/vpp_ip.py
+++ b/test/vpp_ip.py
@@ -7,6 +7,10 @@ import logging
from ipaddress import ip_address
from socket import AF_INET, AF_INET6
from vpp_papi import VppEnum
+try:
+ text_type = unicode
+except NameError:
+ text_type = str
_log = logging.getLogger(__name__)
@@ -26,7 +30,7 @@ INVALID_INDEX = 0xffffffff
class VppIpAddressUnion():
def __init__(self, addr):
self.addr = addr
- self.ip_addr = ip_address(unicode(self.addr))
+ self.ip_addr = ip_address(text_type(self.addr))
def encode(self):
if self.version == 6:
@@ -191,8 +195,8 @@ class VppIpMPrefix():
self.saddr = saddr
self.gaddr = gaddr
self.len = len
- self.ip_saddr = ip_address(unicode(self.saddr))
- self.ip_gaddr = ip_address(unicode(self.gaddr))
+ self.ip_saddr = ip_address(text_type(self.saddr))
+ self.ip_gaddr = ip_address(text_type(self.gaddr))
if self.ip_saddr.version != self.ip_gaddr.version:
raise ValueError('Source and group addresses must be of the '
'same address family.')