[U-Boot] [RFC PATCH v3 00/11] IPv6 support
Chris Packham
judge.packham at gmail.com
Wed Jan 25 10:56:11 CET 2017
This series adds basic IPv6 support to U-boot. It is a reboot of my
earlier work on this[1]. This latest version is itself a reboot of work
that was last posted to the list in late 2015. Right now I've just
rebased against master so functionally it is little different to what
was last posted.
Most of this is ported from Allied Telesis' additions to u-boot[2].
(Note that I am employed by Allied Telesis[3]). The hard work was done
some time ago by Angga, I've cleaned it up and made some improvements
with the hope of getting it accepted upstream.
A few open issues
1) rxhand_f currently takes an struct in_addr. TFTP doesn't use this
(I haven't looked at other users). To support V6 this may need to be a
new union, a void * with some kind of flag or nothing if no rxhandler
actually cares. It has been suggested that this parameter be removed and
any users that care can re-parse the packet.
2) Unit tests. This code needs them. The testing so-far has been ad-hoc
manual testing using qemu-x86.
3) Fancy v6 feature xyz. There are a lot of things that _could_ be
implemented on top of this (DHCPV6 and SLAAC are two obvious things that
stick out). For now I want to concentrate on getting the core code
stable and accepted, if anyone else wants to work on either of those
features that'd be great.
--
[1] - http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/151390
[2] - http://www.alliedtelesis.co.nz/support/gpl/other.html
[3] - some of this has been done on work time, other parts have been
done in my personal time. Since I'm subscribed to the list using
my gmail account I've signed using that.
Changes in v3:
- Add brief testing section
Changes in v2:
- Split environment variables from main implementation
- remove "prefixlength6" environment variable. The prefix length is now
set when specifying the address i.e. setenv ip6addr 2001:db8::1/64.
- split ping6 support into separate patch
- split environment variables into separate patch
- change ip6_ndisc_* to ndisc_*, fix CamelCase
- split ping6 support into it's own patch
- Support parsing the server address from the command parameter.
Chris Packham (11):
Initial net6.h
lib: vsprintf: add IPv6 compressed format %pI6c
lib: net_utils: add string_to_ip6
net: add definition of udp_hdr
net: IPv6 skeleton and environment variables
net: IPv6 support
net: Add ping6 command and implementation
net: TFTP over IPv6
net: IPv6 documentation
net: e1000 enable multicast reception
net: tsec: enable promiscuous mode
README | 3 +
cmd/Kconfig | 15 ++
cmd/net.c | 41 +++++
doc/README.ipv6 | 55 ++++++
drivers/net/e1000.c | 5 +
drivers/net/tsec.c | 4 +
include/env_callback.h | 8 +
include/env_flags.h | 9 +
include/net.h | 18 +-
include/net6.h | 262 ++++++++++++++++++++++++++++
lib/net_utils.c | 121 +++++++++++++
lib/vsprintf.c | 154 ++++++++++++++---
net/Kconfig | 6 +-
net/Makefile | 3 +
net/ndisc.c | 266 ++++++++++++++++++++++++++++
net/ndisc.h | 25 +++
net/net.c | 40 ++++-
net/net6.c | 459 +++++++++++++++++++++++++++++++++++++++++++++++++
net/ping6.c | 111 ++++++++++++
net/tftp.c | 58 +++++++
20 files changed, 1635 insertions(+), 28 deletions(-)
create mode 100644 doc/README.ipv6
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
--
2.11.0.24.ge6920cf
More information about the U-Boot
mailing list