]> git.baikalelectronics.ru Git - kernel.git/commit
net/hsr: Better frame dispatch
authorArvid Brodin <arvid.brodin@alten.se>
Fri, 4 Jul 2014 21:41:03 +0000 (23:41 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 Jul 2014 18:35:31 +0000 (11:35 -0700)
commit177416896e22e267aa083feb415601c5ab87773e
tree8af16a2a5dc8d101e0f1aa4681452a939179c957
parent4adb33b62a360820bd5531513bd5ecddd07ce021
net/hsr: Better frame dispatch

This patch removes the separate paths for frames coming from the outside, and
frames sent from the HSR device, and instead makes all frames go through
hsr_forward_skb() in hsr_forward.c. This greatly improves code readability and
also opens up the possibility for future support of the HSR Interlink device
that is the basis for HSR RedBoxes and HSR QuadBoxes, as well as VLAN
compatibility.

Other improvements:
* A reduction in the number of times an skb is copied on machines without
  HAVE_EFFICIENT_UNALIGNED_ACCESS, which improves throughput somewhat.
* Headers are now created using the standard eth_header(), and using the
  standard hard_header_len.
* Each HSR slave now gets its own private skb, so slave-specific fields can be
  correctly set.

Signed-off-by: Arvid Brodin <arvid.brodin@alten.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/hsr/Makefile
net/hsr/hsr_device.c
net/hsr/hsr_forward.c [new file with mode: 0644]
net/hsr/hsr_forward.h [new file with mode: 0644]
net/hsr/hsr_framereg.c
net/hsr/hsr_framereg.h
net/hsr/hsr_main.c
net/hsr/hsr_main.h
net/hsr/hsr_netlink.c
net/hsr/hsr_slave.c
net/hsr/hsr_slave.h