
From: Chris Packham chris.packham@alliedtelesis.co.nz
Now we have something functional. With this you can do something like 'setenv ipaddr6 3ffe::2' and 'ping6 3ffe::1' should work.
I seem to have a problem that when you send a ping6 for a non-existent address that ends up stuck and the next non-ipv6 net operation tries to resolve it. I suspect this is because the pending neighbor discovery information isn't cleaned up properly.
I'm sending this out now because I'll be away at a conference next week so probably won't have any time to work on this but I did want to say "hey ping6 works". When I get back I'll start tackling tftp over ipv6.
Changes in v3: -Fix a what should have been a glaringly obvious omission that cause all addresses to be interpreted as 0. Made even stricter so that v6 addresses that start with numbers aren't accepted. -return -1 with the input string is null.
Changes in v2: - use __be16/__be32 - add ipv6_addr_v4mapped and ipv6_addr_is_isatap inline functions Changes in v3 - Add reviewed-by from Kim Phillips to "Initial net6.h" - Add support for printing mapped and ISATAP addresses
Chris Packham (7): Initial net6.h lib/vsprintf.c: add IPv6 compressed format %pI6c lib/net_utils.c: make string_to_ip stricter lib/net_utils.c: add string_to_ip6 common.h: add getenv_IP6addr tsec: enable promiscuous mode for IPv6 net: ipv6 support
common/cmd_net.c | 27 +++++ drivers/net/tsec.c | 4 + include/common.h | 6 + include/net.h | 5 +- include/net6.h | 267 ++++++++++++++++++++++++++++++++++++++++ lib/net_utils.c | 128 +++++++++++++++++++- lib/vsprintf.c | 143 +++++++++++++++++++--- net/Makefile | 6 + net/ndisc.c | 276 ++++++++++++++++++++++++++++++++++++++++++ net/ndisc.h | 29 +++++ net/net.c | 38 ++++++ net/net6.c | 349 +++++++++++++++++++++++++++++++++++++++++++++++++++++ net/ping6.c | 115 ++++++++++++++++++ 13 files changed, 1366 insertions(+), 27 deletions(-) create mode 100644 include/net6.h create mode 100644 net/ndisc.c create mode 100644 net/ndisc.h create mode 100644 net/net6.c create mode 100644 net/ping6.c