mbox series

[0/7] add locking to PM APis, implement PM netlink

Message ID cover.1581963738.git.pabeni@redhat.com
Headers show
Series add locking to PM APis, implement PM netlink | expand

Message

Paolo Abeni Feb. 17, 2020, 6:28 p.m. UTC
This implement the locking required by the PM to allow concurent subflow
accessing the msk PM data in a safe way. Such data is protected via a msk-level
spinlock. It relies on the Double checked locking to avoid contention in the
most common scenarion (no or very little PM "actions").

Additionally changes more than a bit the PM hooks/APIs, to be hopefully simpler
and avoiding duplicate code (no v4/v6 variant, work queue management done by the
core PM infra).

It also introduce the PM netlink - it should replace the current basic ones.

git tree available at:

https://github.com/pabeni/mptcp/tree/mptcp_net-next_part3_5

changes from RFC:
 - cleanup uAPIs
 - added self-tests for the uAPIs
 - fixed ton of bugs
 - included feedback from Mat

TODO:
 - implement MP_JOIN self-tests
---
 include/uapi/linux/mptcp.h                      |   51 +
 net/mptcp/Makefile                              |    3 
 net/mptcp/options.c                             |   59 -
 net/mptcp/pm.c                                  |  325 ++++-----
 net/mptcp/pm_netlink.c                          |  799 ++++++++++++++++++++++++
 net/mptcp/protocol.c                            |    2 
 net/mptcp/protocol.h                            |  112 ++-
 net/mptcp/subflow.c                             |   63 +
 tools/testing/selftests/net/mptcp/Makefile      |    4 
 tools/testing/selftests/net/mptcp/pm_netlink.sh |  149 ++++
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c   |  556 ++++++++++++++++
 11 files changed, 1850 insertions(+), 273 deletions(-)