X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fpython%2Fvpp_papi%2Fvpp_format.py;h=2c2345a3f76890bd7555373e082adabb10bee655;hb=ed3bcb00b31b2ae2e43219557c62c5bd1b31ceb4;hp=fec0667862ca8b1cc820648843cdba81815ffbb7;hpb=34ce57486106f8a64b54f32122645a8df9be79eb;p=vpp.git diff --git a/src/vpp-api/python/vpp_papi/vpp_format.py b/src/vpp-api/python/vpp_papi/vpp_format.py index fec0667862c..2c2345a3f76 100644 --- a/src/vpp-api/python/vpp_papi/vpp_format.py +++ b/src/vpp-api/python/vpp_papi/vpp_format.py @@ -13,11 +13,16 @@ # limitations under the License. # -from socket import inet_pton, inet_ntop, AF_INET6, AF_INET +from socket import inet_pton, AF_INET6, AF_INET import socket import ipaddress from . import macaddress +try: + text_type = unicode +except NameError: + text_type = str + # Copies from vl_api_address_t definition ADDRESS_IP4 = 0 ADDRESS_IP6 = 1 @@ -37,18 +42,28 @@ def format_vl_api_address_t(args): def format_vl_api_prefix_t(args): + if isinstance(args, (ipaddress.IPv4Network, ipaddress.IPv6Network)): + return {'prefix': format_vl_api_address_t( + text_type(args.network_address)), + 'len': int(args.prefixlen)} p, length = args.split('/') return {'address': format_vl_api_address_t(p), 'address_length': int(length)} def format_vl_api_ip6_prefix_t(args): + if isinstance(args, ipaddress.IPv6Network): + return {'prefix': args.network_address.packed, + 'len': int(args.prefixlen)} p, length = args.split('/') return {'prefix': inet_pton(AF_INET6, p), 'len': int(length)} def format_vl_api_ip4_prefix_t(args): + if isinstance(args, ipaddress.IPv4Network): + return {'prefix': args.network_address.packed, + 'len': int(args.prefixlen)} p, length = args.split('/') return {'prefix': inet_pton(AF_INET, p), 'len': int(length)}