@@ -444,7 +444,7 @@ cdef class TcpUdpSpec(Spec):
444444
445445
446446cdef class Ipv6Spec(Spec):
447- EMPTY_IPV6 = [ 0 ] * 16
447+ EMPTY_IPV6 = ' :: '
448448 IPV6_MASK = (" ffff:" * 8 )[:- 1 ]
449449 FLOW_LABEL_MASK = 0xfffff
450450
@@ -476,9 +476,21 @@ cdef class Ipv6Spec(Spec):
476476 self .spec_type |= v.IBV_FLOW_SPEC_INNER
477477 self .size = sizeof(v.ibv_flow_spec_ipv6)
478478
479- self .dst_ip, self .dst_ip_mask = self ._set_val_mask(self .IPV6_MASK,
479+ if dst_ip is None :
480+ def_dst_ip_mask = self .EMPTY_IPV6
481+ dst_ip = ' ::'
482+ else :
483+ def_dst_ip_mask = self .IPV6_MASK
484+
485+ if src_ip is None :
486+ def_src_ip_mask = self .EMPTY_IPV6
487+ src_ip = ' ::'
488+ else :
489+ def_src_ip_mask = self .IPV6_MASK
490+
491+ self .dst_ip, self .dst_ip_mask = self ._set_val_mask(def_dst_ip_mask,
480492 dst_ip, dst_ip_mask)
481- self .src_ip, self .src_ip_mask = self ._set_val_mask(self .IPV6_MASK ,
493+ self .src_ip, self .src_ip_mask = self ._set_val_mask(def_src_ip_mask ,
482494 src_ip, src_ip_mask)
483495 self .val.flow_label, self .mask.flow_label = \
484496 map (socket.htonl, self ._set_val_mask(self .FLOW_LABEL_MASK,
@@ -492,31 +504,31 @@ cdef class Ipv6Spec(Spec):
492504
493505 @property
494506 def dst_ip (self ):
495- return socket.inet_ntop(socket.AF_INET6, self .val.dst_ip)
507+ return socket.inet_ntop(socket.AF_INET6, self .val.dst_ip[: 16 ] )
496508
497509 @dst_ip.setter
498510 def dst_ip (self , val ):
499511 self .val.dst_ip = socket.inet_pton(socket.AF_INET6, val)
500512
501513 @property
502514 def dst_ip_mask (self ):
503- return socket.inet_ntop(socket.AF_INET6, self .mask.dst_ip)
515+ return socket.inet_ntop(socket.AF_INET6, self .mask.dst_ip[: 16 ] )
504516
505517 @dst_ip_mask.setter
506518 def dst_ip_mask (self , val ):
507519 self .mask.dst_ip = socket.inet_pton(socket.AF_INET6, val)
508520
509521 @property
510522 def src_ip (self ):
511- return socket.inet_ntop(socket.AF_INET6, self .val.src_ip)
523+ return socket.inet_ntop(socket.AF_INET6, self .val.src_ip[: 16 ] )
512524
513525 @src_ip.setter
514526 def src_ip (self , val ):
515527 self .val.src_ip = socket.inet_pton(socket.AF_INET6, val)
516528
517529 @property
518530 def src_ip_mask (self ):
519- return socket.inet_ntop(socket.AF_INET6, self .mask.src_ip)
531+ return socket.inet_ntop(socket.AF_INET6, self .mask.src_ip[: 16 ] )
520532
521533 @src_ip_mask.setter
522534 def src_ip_mask (self , val ):
0 commit comments