nes-proj/core/net/ip64
Adam Dunkels bfb29d2f11 Merge pull request #1116 from cetic/pr-uip-clear-buffer
Add uip_clear_buf() macro and replace all instances of uip_len = 0
2015-08-27 10:27:08 +02:00
..
ip64-addrmap.c Maintain stats about how many packets have been translated from IPv4 to IPv6 and vice versa 2015-05-10 10:36:50 +02:00
ip64-addrmap.h Maintain stats about how many packets have been translated from IPv4 to IPv6 and vice versa 2015-05-10 10:36:50 +02:00
ip64-arp.c NAT64 / DNS64 code for Contiki that makes connecting an IPv6 Contiki network to IPv4 networks really easy 2014-09-14 21:26:23 +02:00
ip64-arp.h NAT64 / DNS64 code for Contiki that makes connecting an IPv6 Contiki network to IPv4 networks really easy 2014-09-14 21:26:23 +02:00
ip64-conf-example.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-dhcpc.c Fixed DHCP client. 2015-08-25 16:24:37 +02:00
ip64-dhcpc.h NAT64 / DNS64 code for Contiki that makes connecting an IPv6 Contiki network to IPv4 networks really easy 2014-09-14 21:26:23 +02:00
ip64-dns64.c Added support for DNS64 translation of DNS queries for IPv6 addresses to IPv4 addresses, and the translation of responses from IPv4 to IPv6 2015-05-10 10:36:50 +02:00
ip64-dns64.h Added support for DNS64 translation of DNS queries for IPv6 addresses to IPv4 addresses, and the translation of responses from IPv4 to IPv6 2015-05-10 10:36:50 +02:00
ip64-driver.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-eth-interface.c Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-eth-interface.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-eth.c Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-eth.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-interface.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-ipv4-dhcp.c Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-ipv4-dhcp.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-null-driver.c Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-null-driver.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-slip-interface.c Add uip_clear_buf() macro and replace all instances of uip_len = 0; with it 2015-06-15 11:10:51 +02:00
ip64-slip-interface.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
ip64-special-ports.c NAT64 / DNS64 code for Contiki that makes connecting an IPv6 Contiki network to IPv4 networks really easy 2014-09-14 21:26:23 +02:00
ip64-special-ports.h NAT64 / DNS64 code for Contiki that makes connecting an IPv6 Contiki network to IPv4 networks really easy 2014-09-14 21:26:23 +02:00
ip64.c Treat multicast transmissions as recyclable 2015-05-10 10:36:50 +02:00
ip64.h Minor copyright header fix 2015-05-10 10:36:50 +02:00
README.md README file for the IP64 module 2014-09-14 21:26:33 +02:00

The ip64 module lets an IPv6 Contiki network be connected to an IPv4 network without any additional configuration or outside software. The ip64 module runs on the RPL root node and translates outgoing IPv6 packets into IPv4 packets nd incoming IPv4 packets to IPv6 packets.

The ip64 module uses stateful NAT64 (RFC6164) to do the packet translation and DNS64 (RFC6147) to catch DNS requests for IPv6 addresses, turn them into requests for IPv4 addresses, and turn the replies into responses for IPv6 addresses. This allows devices on the inside IPv6 network to connect to named servers on the outside IPv4 network.

The ip64 module hooks into the IPv6 stack via a fallback interface. Any packet that can not be routed into the local RPL mesh will be sent over the fallback interface, where ip64 picks it up, translates it into an IPv4 packet, and sends it over its outgoing interface.

In addition to providing NAT64 and DNS64 services, the ip64 module also performs DHCPv4 to request IPv4 address for devices connected to a medium such as Ethernet. The ip64 module also performs ARP processing to communicate over the Ethernet.

The ip64 module uses a configuration file called ip64-conf.h that specifies what device to use for the IPv4 network. This file is intended to be placed in the platform directory. An example configuration file called ip64-conf-example.h is provided in this directory.