<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/ipv4/ip_gre.c, branch linux-3.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-01-19T11:07:18Z</updated>
<entry>
<title>gre: fix the inner mac header in nbma tunnel xmit path</title>
<updated>2015-01-19T11:07:18Z</updated>
<author>
<name>Timo Teräs</name>
</author>
<published>2014-12-15T07:24:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9fc3d4163ffc6085fa885d5e6a7bbd557a97f0e7'/>
<id>urn:sha1:9fc3d4163ffc6085fa885d5e6a7bbd557a97f0e7</id>
<content type='text'>
commit 8a0033a947403569caeca45fa5e6f7ba60d51974 upstream.

The NBMA GRE tunnels temporarily push GRE header that contain the
per-packet NBMA destination on the skb via header ops early in xmit
path. It is the later pulled before the real GRE header is constructed.

The inner mac was thus set differently in nbma case: the GRE header
has been pushed by neighbor layer, and mac header points to beginning
of the temporary gre header (set by dev_queue_xmit).

Now that the offloads expect mac header to point to the gre payload,
fix the xmit patch to:
 - pull first the temporary gre header away
 - and reset mac header to point to gre payload

This fixes tso to work again with nbma tunnels.

Fixes: 14051f0452a2 ("gre: Use inner mac length when computing tunnel length")
Signed-off-by: Timo Teräs &lt;timo.teras@iki.fi&gt;
Cc: Tom Herbert &lt;therbert@google.com&gt;
Cc: Alexander Duyck &lt;alexander.h.duyck@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
</entry>
<entry>
<title>gre: allow changing mac address when device is up</title>
<updated>2014-06-11T05:46:42Z</updated>
<author>
<name>stephen hemminger</name>
</author>
<published>2014-06-06T15:10:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f8c1b7ce00254a5bb75d5b5e5ef1601326a0e08e'/>
<id>urn:sha1:f8c1b7ce00254a5bb75d5b5e5ef1601326a0e08e</id>
<content type='text'>
There is no need to require forcing device down on a Ethernet GRE (gretap)
tunnel to change the MAC address.

Signed-off-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>gre: add x-netns support</title>
<updated>2014-04-23T18:53:36Z</updated>
<author>
<name>Nicolas Dichtel</name>
</author>
<published>2014-04-22T08:15:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b57708add31494175be741ed3fd24023b50c3423'/>
<id>urn:sha1:b57708add31494175be741ed3fd24023b50c3423</id>
<content type='text'>
This patch allows to switch the netns when packet is encapsulated or
decapsulated. In other word, the encapsulated packet is received in a netns,
where the lookup is done to find the tunnel. Once the tunnel is found, the
packet is decapsulated and injecting into the corresponding interface which
stands to another netns.

When one of the two netns is removed, the tunnel is destroyed.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>gre: don't allow to add the same tunnel twice</title>
<updated>2014-04-12T21:03:11Z</updated>
<author>
<name>Nicolas Dichtel</name>
</author>
<published>2014-04-11T13:51:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a4552752d8f7f4cef1d98775ece7adb7616fde2'/>
<id>urn:sha1:5a4552752d8f7f4cef1d98775ece7adb7616fde2</id>
<content type='text'>
Before the patch, it was possible to add two times the same tunnel:
ip l a gre1 type gre remote 10.16.0.121 local 10.16.0.249
ip l a gre2 type gre remote 10.16.0.121 local 10.16.0.249

It was possible, because ip_tunnel_newlink() calls ip_tunnel_find() with the
argument dev-&gt;type, which was set only later (when calling ndo_init handler
in register_netdevice()). Let's set this type in the setup handler, which is
called before newlink handler.

Introduced by commit c54419321455 ("GRE: Refactor GRE tunneling code.").

CC: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: gre: use icmp_hdr() to get inner ip header</title>
<updated>2014-01-28T04:38:26Z</updated>
<author>
<name>Duan Jiong</name>
</author>
<published>2014-01-28T03:49:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c0c0c50ff7c3e331c90bab316d21f724fb9e1994'/>
<id>urn:sha1:c0c0c50ff7c3e331c90bab316d21f724fb9e1994</id>
<content type='text'>
When dealing with icmp messages, the skb-&gt;data points the
ip header that triggered the sending of the icmp message.

In gre_cisco_err(), the parse_gre_header() is called, and the
iptunnel_pull_header() is called to pull the skb at the end of
the parse_gre_header(), so the skb-&gt;data doesn't point the
inner ip header.

Unfortunately, the ipgre_err still needs those ip addresses in
inner ip header to look up tunnel by ip_tunnel_lookup().

So just use icmp_hdr() to get inner ip header instead of skb-&gt;data.

Signed-off-by: Duan Jiong &lt;duanj.fnst@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: be friend with drop monitor</title>
<updated>2014-01-19T07:08:02Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2014-01-19T02:27:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3acfa1e73c2a2cbf1fda7aef0c6c2c9281ce9db2'/>
<id>urn:sha1:3acfa1e73c2a2cbf1fda7aef0c6c2c9281ce9db2</id>
<content type='text'>
Replace some dev_kfree_skb() with kfree_skb() calls when
we drop one skb, this might help bug tracking.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ip_gre: fix msg_name parsing for recvfrom/recvmsg</title>
<updated>2013-12-18T22:44:33Z</updated>
<author>
<name>Timo Teräs</name>
</author>
<published>2013-12-16T09:02:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0e3da5bb8da45890b1dc413404e0f978ab71173e'/>
<id>urn:sha1:0e3da5bb8da45890b1dc413404e0f978ab71173e</id>
<content type='text'>
ipgre_header_parse() needs to parse the tunnel's ip header and it
uses mac_header to locate the iphdr. This got broken when gre tunneling
was refactored as mac_header is no longer updated to point to iphdr.
Introduce skb_pop_mac_header() helper to do the mac_header assignment
and use it in ipgre_rcv() to fix msg_name parsing.

Bug introduced in commit c54419321455 (GRE: Refactor GRE tunneling code.)

Cc: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: Timo Teräs &lt;timo.teras@iki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2013-08-16T22:37:26Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2013-08-16T22:37:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2ff1cf12c9fe70e75e600404e6a4274b19d293ed'/>
<id>urn:sha1:2ff1cf12c9fe70e75e600404e6a4274b19d293ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ipip: add x-netns support</title>
<updated>2013-08-15T08:00:20Z</updated>
<author>
<name>Nicolas Dichtel</name>
</author>
<published>2013-08-13T15:51:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c742e714d8c282fd8f8b22d3e20b5141738c1ee'/>
<id>urn:sha1:6c742e714d8c282fd8f8b22d3e20b5141738c1ee</id>
<content type='text'>
This patch allows to switch the netns when packet is encapsulated or
decapsulated. In other word, the encapsulated packet is received in a netns,
where the lookup is done to find the tunnel. Once the tunnel is found, the
packet is decapsulated and injecting into the corresponding interface which
stands to another netns.

When one of the two netns is removed, the tunnel is destroyed.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ip_gre: fix ipgre_header to return correct offset</title>
<updated>2013-08-09T18:05:24Z</updated>
<author>
<name>Timo Teräs</name>
</author>
<published>2013-08-06T10:45:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77a482bdb2e68d13fae87541b341905ba70d572b'/>
<id>urn:sha1:77a482bdb2e68d13fae87541b341905ba70d572b</id>
<content type='text'>
Fix ipgre_header() (header_ops-&gt;create) to return the correct
amount of bytes pushed. Most callers of dev_hard_header() seem
to care only if it was success, but af_packet.c uses it as
offset to the skb to copy from userspace only once. In practice
this fixes packet socket sendto()/sendmsg() to gre tunnels.

Regression introduced in c54419321455631079c7d6e60bc732dd0c5914c5
("GRE: Refactor GRE tunneling code.")

Cc: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: Timo Teräs &lt;timo.teras@iki.fi&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
