diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2015-03-04 10:16:43 -0600 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-03-06 14:54:22 -0500 |
commit | aaa4e70404c7b38a8792dc69af54afd7218b2ec0 (patch) | |
tree | 97e298abfa74712540b528fb7d7436c10175b1f3 /include/net | |
parent | 616f45416ca0d726d6d3421a296ebc6e2bb82cde (diff) | |
download | op-kernel-dev-aaa4e70404c7b38a8792dc69af54afd7218b2ec0.zip op-kernel-dev-aaa4e70404c7b38a8792dc69af54afd7218b2ec0.tar.gz |
DECnet: Only use neigh_ops for adding the link layer header
Other users users of the neighbour table use neigh->output as the method
to decided when and which link-layer header to place on a packet.
DECnet has been using neigh->output to decide which DECnet headers to
place on a packet depending which neighbour the packet is destined for.
The DECnet usage isn't totally wrong but it can run into problems if the
neighbour output function is run for a second time as the teql driver
and the bridge netfilter code can do.
Therefore to avoid pathologic problems later down the line and make the
neighbour code easier to understand by refactoring the decnet output
code to only use a neighbour method to add a link layer header to a
packet.
This is done by moving the neigbhour operations lookup from
dn_to_neigh_output to dn_neigh_output_packet.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/dn_neigh.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/dn_neigh.h b/include/net/dn_neigh.h index fac4e3f..0f26aa7 100644 --- a/include/net/dn_neigh.h +++ b/include/net/dn_neigh.h @@ -22,6 +22,7 @@ int dn_neigh_router_hello(struct sk_buff *skb); int dn_neigh_endnode_hello(struct sk_buff *skb); void dn_neigh_pointopoint_hello(struct sk_buff *skb); int dn_neigh_elist(struct net_device *dev, unsigned char *ptr, int n); +int dn_to_neigh_output(struct sk_buff *skb); extern struct neigh_table dn_neigh_table; |