User Tools

Site Tools


devel:blueprints:pping-ipv6

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
devel:blueprints:pping-ipv6 [2011/04/03 09:38]
morten created
devel:blueprints:pping-ipv6 [2011/06/14 12:58] (current)
morten [Pointers]
Line 1: Line 1:
 ====== Enable IPv6 in pping ====== ====== Enable IPv6 in pping ======
 +
 +Specification for blueprint: https://​blueprints.launchpad.net/​nav/​+spec/​pping-ipv6
 ===== Overview ===== ===== Overview =====
  
Line 11: Line 13:
   * [[http://​tools.ietf.org/​html/​rfc2463|ICMPv6:​ RFC 2463]]   * [[http://​tools.ietf.org/​html/​rfc2463|ICMPv6:​ RFC 2463]]
  
-ICMPv6 is based on ICMPv4, but the echo request/​echo reply packets do not use the same codes. ​ Also, the checksum of an ICMPv6 ​packets seems to include more than the packet itself (from a quick glance at RFC 2463). ​ The ''​pping''​ code embeds an old Python library for ICMP packet manipulation,​ written by Jeremy Hylton. ​ The exact license of this library seems unclear at the moment; regardless, it does not support ICMPv6 packets. ​ It should likely be replaced with something that supports both versions and whose license is clearly GPL compatible.+ICMPv6 is based on ICMPv4, but the echo request/​echo reply packets do not use the same codes. ​ Also, the checksum of an ICMPv6 ​packet appears ​to be calculated based on both an IPv6 header and the ICMP packet itself (from a quick glance at RFC 2463). ​ The ''​pping''​ code embeds an old Python library for ICMP packet manipulation,​ written by Jeremy Hylton. ​ The exact license of this library seems unclear at the moment; regardless, it does not support ICMPv6 packets. ​ It should likely be replaced with something that supports both versions and whose license is clearly GPL compatible.
  
 A few places in the pping code makes assumptions about what an IP address string looks like, and currently, a single AF_INET socket is used for sending ICMPv4 packets. Probably the best way to go is to add an AF_INET6 socket as well, then select the sending socket based on the destination IP address family, and adding the new socket to the socket list of the select() call used to receive data. A few places in the pping code makes assumptions about what an IP address string looks like, and currently, a single AF_INET socket is used for sending ICMPv4 packets. Probably the best way to go is to add an AF_INET6 socket as well, then select the sending socket based on the destination IP address family, and adding the new socket to the socket list of the select() call used to receive data.
 +
 +This ICMP-packet manipulating code can probably be reused in NAV: http://​code.activestate.com/​recipes/​409689-icmplib-library-for-creating-and-reading-icmp-pack/ ​ (PSF license, which I believe is compatible with GPL)
  
devel/blueprints/pping-ipv6.1301823522.txt.gz ยท Last modified: 2011/04/03 09:38 by morten