diff options
author | Jeremy Kerr <jk@codeconstruct.com.au> | 2021-07-29 05:20:49 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-07-29 17:06:50 +0300 |
commit | 833ef3b91de692ef33b800bca6b1569c39dece74 (patch) | |
tree | ff450c69b1a4b9c9d8ff83d832e870461c546f69 /include/net/netns | |
parent | 831119f8878173adbf31f1151adf0f4627c05e01 (diff) | |
download | linux-833ef3b91de692ef33b800bca6b1569c39dece74.tar.xz |
mctp: Populate socket implementation
Start filling-out the socket syscalls: bind, sendmsg & recvmsg.
This requires an input route implementation, so we add to
mctp_route_input, allowing lookups on binds & message tags. This just
handles single-packet messages at present, we will add fragmentation in
a future change.
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/netns')
-rw-r--r-- | include/net/netns/mctp.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/net/netns/mctp.h b/include/net/netns/mctp.h index 2f5ebeeb320e..14ae6d37e52a 100644 --- a/include/net/netns/mctp.h +++ b/include/net/netns/mctp.h @@ -12,6 +12,19 @@ struct netns_mctp { /* Only updated under RTNL, entries freed via RCU */ struct list_head routes; + /* Bound sockets: list of sockets bound by type. + * This list is updated from non-atomic contexts (under bind_lock), + * and read (under rcu) in packet rx + */ + struct mutex bind_lock; + struct hlist_head binds; + + /* tag allocations. This list is read and updated from atomic contexts, + * but elements are free()ed after a RCU grace-period + */ + spinlock_t keys_lock; + struct hlist_head keys; + /* neighbour table */ struct mutex neigh_lock; struct list_head neighbours; |