summaryrefslogtreecommitdiffstats
path: root/net/ipv4/af_inet.c
diff options
context:
space:
mode:
authorVlad Yasevich2012-11-15 09:49:12 +0100
committerDavid S. Miller2012-11-15 23:36:17 +0100
commitde27d001d187721de775ed9e0c485aa6f517c745 (patch)
tree08947ffb402922f7384e61563d201761171fdbb1 /net/ipv4/af_inet.c
parentnet: Switch to using the new packet offload infrustructure (diff)
downloadkernel-qcow2-linux-de27d001d187721de775ed9e0c485aa6f517c745.tar.gz
kernel-qcow2-linux-de27d001d187721de775ed9e0c485aa6f517c745.tar.xz
kernel-qcow2-linux-de27d001d187721de775ed9e0c485aa6f517c745.zip
net: Add net protocol offload registration infrustructure
Create a new data structure for IPv4 protocols that holds GRO/GSO callbacks and a new array to track the protocols that register GRO/GSO. Signed-off-by: Vlad Yasevich <vyasevic@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r--net/ipv4/af_inet.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 4c99c5fdba3f..3918d869d6d4 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1566,6 +1566,13 @@ static const struct net_protocol tcp_protocol = {
.netns_ok = 1,
};
+static const struct net_offload tcp_offload = {
+ .gso_send_check = tcp_v4_gso_send_check,
+ .gso_segment = tcp_tso_segment,
+ .gro_receive = tcp4_gro_receive,
+ .gro_complete = tcp4_gro_complete,
+};
+
static const struct net_protocol udp_protocol = {
.handler = udp_rcv,
.err_handler = udp_err,
@@ -1575,6 +1582,11 @@ static const struct net_protocol udp_protocol = {
.netns_ok = 1,
};
+static const struct net_offload udp_offload = {
+ .gso_send_check = udp4_ufo_send_check,
+ .gso_segment = udp4_ufo_fragment,
+};
+
static const struct net_protocol icmp_protocol = {
.handler = icmp_rcv,
.err_handler = ping_err,