All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [RFC PATCH v2 00/11] IPv6 support
@ 2015-11-09  7:38 Chris Packham
  2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 01/11] Initial net6.h Chris Packham
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: Chris Packham @ 2015-11-09  7:38 UTC (permalink / raw)
  To: u-boot

This series adds basic IPv6 support to U-boot. It is a reboot of my
earlier work on this[1].

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.

This is still very much a work in progress but it is functional. If anyone is
willing/able to test on some other hardware I'd appreciate some feedback.

If it's helpful for testing I'm keeping the 'ipv6' branch of
https://github.com/cpackham/u-boot.git up to date with these changes.

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 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

Chris Packham (11):
  Initial net6.h
  lib: vsprintf: add IPv6 compressed format %pI6c
  lib: net_utils: make string_to_ip stricter
  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

 README                 |   3 +
 common/Kconfig         |  15 ++
 common/cmd_net.c       |  41 +++++
 doc/README.ipv6        |  32 ++++
 drivers/net/e1000.c    |   5 +
 include/env_callback.h |   8 +
 include/env_flags.h    |   9 +
 include/net.h          |  18 +-
 include/net6.h         | 262 ++++++++++++++++++++++++++++
 lib/net_utils.c        | 132 +++++++++++++-
 lib/vsprintf.c         | 154 ++++++++++++++---
 net/Kconfig            |   5 +
 net/Makefile           |   3 +
 net/ndisc.c            | 266 ++++++++++++++++++++++++++++
 net/ndisc.h            |  25 +++
 net/net.c              |  41 ++++-
 net/net6.c             | 459 +++++++++++++++++++++++++++++++++++++++++++++++++
 net/ping6.c            | 111 ++++++++++++
 net/tftp.c             |  58 +++++++
 19 files changed, 1616 insertions(+), 31 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.5.3

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2015-11-24  9:47 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-09  7:38 [U-Boot] [RFC PATCH v2 00/11] IPv6 support Chris Packham
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 01/11] Initial net6.h Chris Packham
2015-11-24  1:05   ` Joe Hershberger
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 02/11] lib: vsprintf: add IPv6 compressed format %pI6c Chris Packham
2015-11-24  1:06   ` Joe Hershberger
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 03/11] lib: net_utils: make string_to_ip stricter Chris Packham
2015-11-24  1:06   ` Joe Hershberger
2015-11-24  9:37     ` Chris Packham
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 04/11] lib: net_utils: add string_to_ip6 Chris Packham
2015-11-24  1:06   ` Joe Hershberger
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 05/11] net: add definition of udp_hdr Chris Packham
2015-11-24  1:06   ` Joe Hershberger
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 06/11] net: IPv6 skeleton and environment variables Chris Packham
2015-11-24  1:06   ` Joe Hershberger
2015-11-24  9:47     ` Chris Packham
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 07/11] net: IPv6 support Chris Packham
2015-11-24  1:06   ` Joe Hershberger
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 08/11] net: Add ping6 command and implementation Chris Packham
2015-11-24  1:06   ` Joe Hershberger
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 09/11] net: TFTP over IPv6 Chris Packham
2015-11-24  1:07   ` Joe Hershberger
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 10/11] net: IPv6 documentation Chris Packham
2015-11-09  7:38 ` [U-Boot] [RFC PATCH v2 11/11] net: e1000 enable multicast reception Chris Packham
2015-11-24  1:07   ` Joe Hershberger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.