<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/openvswitch, branch v4.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.3</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2015-10-28T02:32:18Z</updated>
<entry>
<title>openvswitch: Fix skb leak using IPv6 defrag</title>
<updated>2015-10-28T02:32:18Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-26T03:21:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6f5cadee44d83395dcd78d557b577e1021e192e4'/>
<id>urn:sha1:6f5cadee44d83395dcd78d557b577e1021e192e4</id>
<content type='text'>
nf_ct_frag6_gather() makes a clone of each skb passed to it, and if the
reassembly is successful, expects the caller to free all of the original
skbs using nf_ct_frag6_consume_orig(). This call was previously missing,
meaning that the original fragments were never freed (with the exception
of the last fragment to arrive).

Fix this by ensuring that all original fragments except for the last
fragment are freed via nf_ct_frag6_consume_orig(). The last fragment
will be morphed into the head, so it must not be freed yet. Furthermore,
retain the -&gt;next pointer for the head after skb_morph().

Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action")
Reported-by: Florian Westphal &lt;fw@strlen.de&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Fix double-free on ip_defrag() errors</title>
<updated>2015-10-28T02:32:14Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-26T03:21:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=74c16618137f1505b0a32dea3ec73a2ef6f8f842'/>
<id>urn:sha1:74c16618137f1505b0a32dea3ec73a2ef6f8f842</id>
<content type='text'>
If ip_defrag() returns an error other than -EINPROGRESS, then the skb is
freed. When handle_fragments() passes this back up to
do_execute_actions(), it will be freed again. Prevent this double free
by never freeing the skb in do_execute_actions() for errors returned by
ovs_ct_execute. Always free it in ovs_ct_execute() error paths instead.

Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action")
Reported-by: Florian Westphal &lt;fw@strlen.de&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Fix egress tunnel info.</title>
<updated>2015-10-23T02:39:25Z</updated>
<author>
<name>Pravin B Shelar</name>
<email>pshelar@nicira.com</email>
</author>
<published>2015-10-23T01:17:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fc4099f17240767554ff3a73977acb78ef615404'/>
<id>urn:sha1:fc4099f17240767554ff3a73977acb78ef615404</id>
<content type='text'>
While transitioning to netdev based vport we broke OVS
feature which allows user to retrieve tunnel packet egress
information for lwtunnel devices.  Following patch fixes it
by introducing ndo operation to get the tunnel egress info.
Same ndo operation can be used for lwtunnel devices and compat
ovs-tnl-vport devices. So after adding such device operation
we can remove similar operation from ovs-vport.

Fixes: 614732eaa12d ("openvswitch: Use regular VXLAN net_device device").
Signed-off-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Serialize nested ct actions if provided</title>
<updated>2015-10-22T02:33:43Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-20T02:19:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e754ec69ab69601420eb2ed58ece803d77c93f61'/>
<id>urn:sha1:e754ec69ab69601420eb2ed58ece803d77c93f61</id>
<content type='text'>
If userspace provides a ct action with no nested mark or label, then the
storage for these fields is zeroed. Later when actions are requested,
such zeroed fields are serialized even though userspace didn't
originally specify them. Fix the behaviour by ensuring that no action is
serialized in this case, and reject actions where userspace attempts to
set these fields with mask=0. This should make netlink marshalling
consistent across deserialization/reserialization.

Reported-by: Jarno Rajahalme &lt;jrajahalme@nicira.com&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Mark connections new when not confirmed.</title>
<updated>2015-10-22T02:33:40Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-20T02:18:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4f0909ee3d8e3514a274121f3bf217a4920fa12d'/>
<id>urn:sha1:4f0909ee3d8e3514a274121f3bf217a4920fa12d</id>
<content type='text'>
New, related connections are marked as such as part of ovs_ct_lookup(),
but they are not marked as "new" if the commit flag is used. Make this
consistent by setting the "new" flag whenever !nf_ct_is_confirmed(ct).

Reported-by: Jarno Rajahalme &lt;jrajahalme@nicira.com&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Reject ct_state masks for unknown bits</title>
<updated>2015-10-22T02:33:36Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-20T02:18:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9e384715e9e702704c6941c575f0e6b322132a3a'/>
<id>urn:sha1:9e384715e9e702704c6941c575f0e6b322132a3a</id>
<content type='text'>
Currently, 0-bits are generated in ct_state where the bit position is
undefined, and matches are accepted on these bit-positions. If userspace
requests to match the 0-value for this bit then it may expect only a
subset of traffic to match this value, whereas currently all packets
will have this bit set to 0. Fix this by rejecting such masks.

Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Allocate memory for ovs internal device stats.</title>
<updated>2015-10-22T02:06:36Z</updated>
<author>
<name>James Morse</name>
<email>james.morse@arm.com</email>
</author>
<published>2015-10-19T15:31:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1241365f1aeb24ef0ffe82970f7c558022ddc85f'/>
<id>urn:sha1:1241365f1aeb24ef0ffe82970f7c558022ddc85f</id>
<content type='text'>
"openvswitch: Remove vport stats" removed the per-vport statistics, in
order to use the netdev's statistics fields.
"openvswitch: Fix ovs_vport_get_stats()" fixed the export of these stats
to user-space, by using the provided netdev_ops to collate them - but ovs
internal devices still use an unallocated dev-&gt;tstats field to count
packets, which are no longer exported by this api.

Allocate the dev-&gt;tstats field for ovs internal devices, and wire up
ndo_get_stats64 with the original implementation of
ovs_vport_get_stats().

On its own, "openvswitch: Fix ovs_vport_get_stats()" fixes the OOPs,
unmasking a full-on panic on arm64:

=============%&lt;==============
[&lt;ffffffbffc00ce4c&gt;] internal_dev_recv+0xa8/0x170 [openvswitch]
[&lt;ffffffbffc0008b4&gt;] do_output.isra.31+0x60/0x19c [openvswitch]
[&lt;ffffffbffc000bf8&gt;] do_execute_actions+0x208/0x11c0 [openvswitch]
[&lt;ffffffbffc001c78&gt;] ovs_execute_actions+0xc8/0x238 [openvswitch]
[&lt;ffffffbffc003dfc&gt;] ovs_packet_cmd_execute+0x21c/0x288 [openvswitch]
[&lt;ffffffc0005e8c5c&gt;] genl_family_rcv_msg+0x1b0/0x310
[&lt;ffffffc0005e8e60&gt;] genl_rcv_msg+0xa4/0xe4
[&lt;ffffffc0005e7ddc&gt;] netlink_rcv_skb+0xb0/0xdc
[&lt;ffffffc0005e8a94&gt;] genl_rcv+0x38/0x50
[&lt;ffffffc0005e76c0&gt;] netlink_unicast+0x164/0x210
[&lt;ffffffc0005e7b70&gt;] netlink_sendmsg+0x304/0x368
[&lt;ffffffc0005a21c0&gt;] sock_sendmsg+0x30/0x4c
[SNIP]
Kernel panic - not syncing: Fatal exception in interrupt
=============%&lt;==============

Fixes: 8c876639c985 ("openvswitch: Remove vport stats.")
Signed-off-by: James Morse &lt;james.morse@arm.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Scrub skb between namespaces</title>
<updated>2015-10-19T05:24:50Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-16T18:08:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=740dbc289155fdeed32438396370e70b684cd45e'/>
<id>urn:sha1:740dbc289155fdeed32438396370e70b684cd45e</id>
<content type='text'>
If OVS receives a packet from another namespace, then the packet should
be scrubbed. However, people have already begun to rely on the behaviour
that skb-&gt;mark is preserved across namespaces, so retain this one field.

This is mainly to address information leakage between namespaces when
using OVS internal ports, but by placing it in ovs_vport_receive() it is
more generally applicable, meaning it should not be overlooked if other
port types are allowed to be moved into namespaces in future.

Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Change CT_ATTR_FLAGS to CT_ATTR_COMMIT</title>
<updated>2015-10-07T12:03:06Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-06T18:00:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ab38a7b5a4493a3658d891a8e91f9ffcb3d2defb'/>
<id>urn:sha1:ab38a7b5a4493a3658d891a8e91f9ffcb3d2defb</id>
<content type='text'>
Previously, the CT_ATTR_FLAGS attribute, when nested under the
OVS_ACTION_ATTR_CT, encoded a 32-bit bitmask of flags that modify the
semantics of the ct action. It's more extensible to just represent each
flag as a nested attribute, and this requires no additional error
checking to reject flags that aren't currently supported.

Suggested-by: Ben Pfaff &lt;blp@nicira.com&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Extend ct_state match field to 32 bits</title>
<updated>2015-10-07T12:03:06Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-06T18:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fbccce5965a58d56aaed9e9acd1bec75d8a66e87'/>
<id>urn:sha1:fbccce5965a58d56aaed9e9acd1bec75d8a66e87</id>
<content type='text'>
The ct_state field was initially added as an 8-bit field, however six of
the bits are already being used and use cases are already starting to
appear that may push the limits of this field. This patch extends the
field to 32 bits while retaining the internal representation of 8 bits.
This should cover forward compatibility of the ABI for the foreseeable
future.

This patch also reorders the OVS_CS_F_* bits to be sequential.

Suggested-by: Jarno Rajahalme &lt;jrajahalme@nicira.com&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
