[RAMEN9610-20741]UPSTREAM: xfrm: Make set-mark default behavior backward compatible
authorBenedict Wong <benedictwong@google.com>
Mon, 14 Jan 2019 19:24:38 +0000 (11:24 -0800)
committerrobot <robot@samsung.com>
Sun, 27 Oct 2019 17:53:54 +0000 (02:53 +0900)
commitb895040d915a19c5f4c43580d1866b00f4ce6e2b
tree3fca6ffb00ae81b7f68df4c170b6b831166b8cdb
parent21eae328e4432b5318eb00a2b830dfd41f0191ed
[RAMEN9610-20741]UPSTREAM: xfrm: Make set-mark default behavior backward compatible

Fixes 9b42c1f, which changed the default route lookup behavior for
tunnel mode SAs in the outbound direction to use the skb mark, whereas
previously mark=0 was used if the output mark was unspecified. In
mark-based routing schemes such as Android’s, this change in default
behavior causes routing loops or lookup failures.

This patch restores the default behavior of using a 0 mark while still
incorporating the skb mark if the SET_MARK (and SET_MARK_MASK) is
specified.

Tested with additions to Android's kernel unit test suite:
https://android-review.googlesource.com/c/kernel/tests/+/860150

Fixes: 9b42c1f ("xfrm: Extend the output_mark to support input direction and masking")
Signed-off-by: Benedict Wong <benedictwong@google.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
(cherry picked from commit e2612cd496e7b465711d219ea6118893d7253f52)
Bug: 122236988
Test: Passes kernel tests
Change-Id: I1289b5b7b1eb93c6d99a0ba7d28e24c3eb25883d
Signed-off-by: Benedict Wong <benedictwong@google.com>
net/xfrm/xfrm_policy.c