All of lore.kernel.org
 help / color / mirror / Atom feed
From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
To: stephan.gatzka@gmail.com
Cc: linux1394-devel@lists.sourceforge.net,
	netdev <netdev@vger.kernel.org>,
	David Miller <davem@davemloft.net>
Subject: Re: [RFC:] struct net_device_ops: Add function pointer to fill device specific ndisc information
Date: Mon, 21 Jan 2013 03:47:13 +0900	[thread overview]
Message-ID: <50FC3BB1.4070005@linux-ipv6.org> (raw)
In-Reply-To: <50FC2EE4.3080705@gmail.com>

Stephan Gatzka wrote:
> I've implemented IPv6 over firewire. Right now I'm facing the problem that the corresponding RFC3146 requires very firewire specific information sent during neighborhood discovery.
> 
> There was already a discussion on the linux1394 mailing list (http://sourceforge.net/mailarchive/message.php?msg_id=30342089 and http://sourceforge.net/mailarchive/forum.php?thread_name=50E4A3E5.8080304%40gmail.com&forum_name=linux1394-devel)
> 
> During that discussion all participants agreed that it makes no sense to introduce a dependency between the ndisc code and the firewire net driver.
> 
> So the most appealing option seems to be to introduce on more callback routine either in struct net_device or struct net_device_ops:
> 
> int (*ndo_fill_llao)(void *llao);
> 
> Because I'm not so familiar with the structure of the whole network infrastructure in Linux, I need some advice if struct net_device or struct net_device_ops is the right place.
> 
> Maybe it's worth to generalize this and do the same for IPv4/ARP because right now the ARP packets are mangled in the firewire net driver.
> 
> Nevertheless, I've to admit that right now it seems that only IPv6 over firewire requires such a callback routine.

My current position is to change "mac address" to

struct fwnet_hwaddr {
	u8	guid[8];
	u8	max_rec;
	u8	sspd;
	u8	fifo[6];
};

Benefits:

[ARP and NDISC]
- both can be handled in more natural way.
-- You will not need to mangle those packets when
   sending/receiving.
-- You do not need to inspect ARP/NDISC packet.
   By using netevent notification mechanism, you can
   learn peer parameters.
-- IP layer is not required to change very much.

[Multicast]
-it can be handled in more natural way.
-- MCAP (Multicast Channel Allocation Protocol) needs to
   know full IP multicast address.
-- We have IP multicast address => "hardware address"
   mapping for each L2 type in IP layer.
-- We expect that IP layer can request net_device to
   receive multicast stream for some multicast address
   via corresponding "hardware address".
-- This means that we need to have "hardware address"
   of 128bits (16 octets) or more.
-- By increasing size of dev->dev_addr, we can embedded
   full IPv6 address in it.

--yoshfuji

  reply	other threads:[~2013-01-20 18:47 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-20 17:52 [RFC:] struct net_device_ops: Add function pointer to fill device specific ndisc information Stephan Gatzka
2013-01-20 18:47 ` YOSHIFUJI Hideaki [this message]
2013-01-20 21:23   ` Stephan Gatzka
2013-01-21  2:29     ` YOSHIFUJI Hideaki
2013-01-21  6:25       ` Stephan Gatzka
2013-01-21  7:39         ` Stefan Richter
2013-01-21 11:50           ` YOSHIFUJI Hideaki
2013-01-21 19:25           ` Stephan Gatzka
2013-01-21 19:57             ` YOSHIFUJI Hideaki
2013-01-21 21:16               ` Stephan Gatzka
2013-01-27 14:43                 ` Stefan Richter
2013-01-27 17:21                   ` Stephan Gatzka
2013-01-27 18:20                     ` Stephan Gatzka
2013-01-27 18:25                       ` YOSHIFUJI Hideaki
2013-01-27 19:28                     ` YOSHIFUJI Hideaki
2013-01-27 23:26                       ` Stefan Richter
2013-01-21 11:50         ` YOSHIFUJI Hideaki
2013-01-21  8:09     ` Stefan Richter
2013-01-21 12:04       ` YOSHIFUJI Hideaki
2013-01-21 13:15         ` Stefan Richter
2013-01-21  6:37   ` Stephan Gatzka
2013-01-21 12:16     ` YOSHIFUJI Hideaki
2013-01-20 21:22 ` Waskiewicz Jr, Peter P
2013-01-21  6:17   ` Stephan Gatzka
2013-01-21  8:28     ` Stefan Richter
2013-01-21 12:32       ` YOSHIFUJI Hideaki
2013-01-21 14:15         ` YOSHIFUJI Hideaki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50FC3BB1.4070005@linux-ipv6.org \
    --to=yoshfuji@linux-ipv6.org \
    --cc=davem@davemloft.net \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=netdev@vger.kernel.org \
    --cc=stephan.gatzka@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.