* [MPTCP] [PATCH 1/2] mptcp: Minor changes to path manager interface
@ 2019-09-07 1:30 Peter Krystad
0 siblings, 0 replies; 4+ messages in thread
From: Peter Krystad @ 2019-09-07 1:30 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 4391 bytes --]
Needed preparations so interim path manager can be in it's own file
squashto: Add path manager interface
Signed-off-by: Peter Krystad <peter.krystad(a)linux.intel.com>
---
net/mptcp/pm.c | 31 +++++++++++++++++++++----------
net/mptcp/protocol.c | 1 -
net/mptcp/protocol.h | 9 ++++++++-
3 files changed, 29 insertions(+), 12 deletions(-)
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index bc07376a823b..55b497a60230 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -10,7 +10,7 @@
/* path manager command handlers */
-int pm_announce_addr(u32 token, sa_family_t family, u8 local_id,
+int pm_announce_addr(u32 token, u8 local_id, sa_family_t family,
struct in_addr *addr)
{
struct mptcp_sock *msk = mptcp_sk(token_lookup_get(token));
@@ -50,7 +50,8 @@ int pm_remove_addr(u32 token, u8 local_id)
return 0;
}
-int pm_create_subflow(u32 token, u8 remote_id)
+int pm_create_subflow(u32 token, u8 remote_id, sa_family_t family,
+ struct in_addr *addr)
{
struct mptcp_sock *msk = mptcp_sk(token_lookup_get(token));
struct sockaddr_in remote;
@@ -69,7 +70,10 @@ int pm_create_subflow(u32 token, u8 remote_id)
local.sin_family = AF_INET;
local.sin_port = 0;
- local.sin_addr.s_addr = INADDR_ANY;
+ if (family == AF_INET)
+ local.sin_addr.s_addr = addr->s_addr;
+ else
+ local.sin_addr.s_addr = INADDR_ANY;
remote.sin_family = msk->pm.remote_family;
remote.sin_port = htons(msk->dport);
@@ -91,16 +95,21 @@ int pm_remove_subflow(u32 token, u8 remote_id)
void pm_new_connection(struct mptcp_sock *msk, int server_side)
{
- pr_debug("msk=%p", msk);
+ struct mptcp_pm_data *pm = &msk->pm;
+
+ pr_debug("msk=%p, token=%u", msk, msk->token);
- msk->pm.server_side = server_side;
+ pm->server_side = server_side;
+ pm->token = msk->token;
}
void pm_fully_established(struct mptcp_sock *msk)
{
+ struct mptcp_pm_data *pm = &msk->pm;
+
pr_debug("msk=%p", msk);
- msk->pm.fully_established = 1;
+ pm->fully_established = 1;
}
void pm_connection_closed(struct mptcp_sock *msk)
@@ -120,12 +129,14 @@ void pm_subflow_closed(struct mptcp_sock *msk, u8 id)
void pm_add_addr(struct mptcp_sock *msk, const struct in_addr *addr, u8 id)
{
+ struct mptcp_pm_data *pm = &msk->pm;
+
pr_debug("msk=%p, addr=%x, remote_id=%d", msk, addr->s_addr, id);
- msk->pm.remote_addr.s_addr = addr->s_addr;
- msk->pm.remote_id = id;
- msk->pm.remote_family = AF_INET;
- msk->pm.remote_valid = 1;
+ pm->remote_addr.s_addr = addr->s_addr;
+ pm->remote_id = id;
+ pm->remote_family = AF_INET;
+ pm->remote_valid = 1;
}
void pm_add_addr6(struct mptcp_sock *msk, const struct in6_addr *addr, u8 id)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 3c678d52ae1e..06a1cea45efe 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1135,7 +1135,6 @@ void mptcp_proto_init(void)
token_init();
subflow_init();
- pm_init();
if (proto_register(&mptcp_prot, 1) != 0)
panic("Failed to register MPTCP proto.\n");
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 991ad288b892..e0c47d813a26 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -260,7 +260,6 @@ static inline void crypto_key_gen_sha1(u64 *key, u32 *token, u64 *idsn)
void crypto_hmac_sha1(u64 key1, u64 key2, u32 nonce1, u32 nonce2,
u32 *hash_out);
-void pm_init(void);
void pm_new_connection(struct mptcp_sock *msk, int server_side);
void pm_fully_established(struct mptcp_sock *msk);
void pm_connection_closed(struct mptcp_sock *msk);
@@ -269,6 +268,14 @@ void pm_subflow_closed(struct mptcp_sock *msk, u8 id);
void pm_add_addr(struct mptcp_sock *msk, const struct in_addr *addr, u8 id);
void pm_add_addr6(struct mptcp_sock *msk, const struct in6_addr *addr, u8 id);
void pm_rm_addr(struct mptcp_sock *msk, u8 id);
+
+int pm_announce_addr(u32 token, u8 local_id, sa_family_t family,
+ struct in_addr *addr);
+int pm_create_subflow(u32 token, u8 remote_id, sa_family_t family,
+ struct in_addr *addr);
+int pm_remove_addr(u32 token, u8 local_id);
+int pm_remove_subflow(u32 token, u8 remote_id);
+
int pm_addr_signal(struct mptcp_sock *msk, u8 *id,
struct sockaddr_storage *saddr);
int pm_get_local_id(struct request_sock *req, struct sock *sk,
--
2.17.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [MPTCP] [PATCH 1/2] mptcp: Minor changes to path manager interface
@ 2019-09-11 20:57 Paolo Abeni
0 siblings, 0 replies; 4+ messages in thread
From: Paolo Abeni @ 2019-09-11 20:57 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 486 bytes --]
On Fri, 2019-09-06 at 18:30 -0700, Peter Krystad wrote:
> diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
> index 3c678d52ae1e..06a1cea45efe 100644
> --- a/net/mptcp/protocol.c
> +++ b/net/mptcp/protocol.c
> @@ -1135,7 +1135,6 @@ void mptcp_proto_init(void)
>
> token_init();
> subflow_init();
> - pm_init();
I guess we should also remove pm_init() definition, but that can go
with a later clean-up patch. I think this patch can be merged as-is.
Paolo
^ permalink raw reply [flat|nested] 4+ messages in thread
* [MPTCP] [PATCH 1/2] mptcp: Minor changes to path manager interface
@ 2019-09-17 18:37 Peter Krystad
0 siblings, 0 replies; 4+ messages in thread
From: Peter Krystad @ 2019-09-17 18:37 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 4407 bytes --]
Needed preparations so basic path manager can be in it's own file
squashto: Add path manager interface
Signed-off-by: Peter Krystad <peter.krystad(a)linux.intel.com>
---
net/mptcp/pm.c | 31 +++++++++++++++++++++----------
net/mptcp/protocol.c | 1 -
net/mptcp/protocol.h | 9 ++++++++-
3 files changed, 29 insertions(+), 12 deletions(-)
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index 57e13837ee22..d0ce36cc912c 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -10,7 +10,7 @@
/* path manager command handlers */
-int pm_announce_addr(u32 token, sa_family_t family, u8 local_id,
+int pm_announce_addr(u32 token, u8 local_id, sa_family_t family,
struct in_addr *addr)
{
struct mptcp_sock *msk = mptcp_token_get_sock(token);
@@ -50,7 +50,8 @@ int pm_remove_addr(u32 token, u8 local_id)
return 0;
}
-int pm_create_subflow(u32 token, u8 remote_id)
+int pm_create_subflow(u32 token, u8 remote_id, sa_family_t family,
+ struct in_addr *addr)
{
struct mptcp_sock *msk = mptcp_token_get_sock(token);
struct sockaddr_in remote;
@@ -69,7 +70,10 @@ int pm_create_subflow(u32 token, u8 remote_id)
local.sin_family = AF_INET;
local.sin_port = 0;
- local.sin_addr.s_addr = INADDR_ANY;
+ if (family == AF_INET)
+ local.sin_addr.s_addr = addr->s_addr;
+ else
+ local.sin_addr.s_addr = INADDR_ANY;
remote.sin_family = msk->pm.remote_family;
remote.sin_port = htons(msk->dport);
@@ -91,16 +95,21 @@ int pm_remove_subflow(u32 token, u8 remote_id)
void pm_new_connection(struct mptcp_sock *msk, int server_side)
{
- pr_debug("msk=%p", msk);
+ struct mptcp_pm_data *pm = &msk->pm;
+
+ pr_debug("msk=%p, token=%u", msk, msk->token);
- msk->pm.server_side = server_side;
+ pm->server_side = server_side;
+ pm->token = msk->token;
}
void pm_fully_established(struct mptcp_sock *msk)
{
+ struct mptcp_pm_data *pm = &msk->pm;
+
pr_debug("msk=%p", msk);
- msk->pm.fully_established = 1;
+ pm->fully_established = 1;
}
void pm_connection_closed(struct mptcp_sock *msk)
@@ -120,12 +129,14 @@ void pm_subflow_closed(struct mptcp_sock *msk, u8 id)
void pm_add_addr(struct mptcp_sock *msk, const struct in_addr *addr, u8 id)
{
+ struct mptcp_pm_data *pm = &msk->pm;
+
pr_debug("msk=%p, addr=%x, remote_id=%d", msk, addr->s_addr, id);
- msk->pm.remote_addr.s_addr = addr->s_addr;
- msk->pm.remote_id = id;
- msk->pm.remote_family = AF_INET;
- msk->pm.remote_valid = 1;
+ pm->remote_addr.s_addr = addr->s_addr;
+ pm->remote_id = id;
+ pm->remote_family = AF_INET;
+ pm->remote_valid = 1;
}
void pm_add_addr6(struct mptcp_sock *msk, const struct in6_addr *addr, u8 id)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 9c019e696fc7..2fcdf11a653a 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1130,7 +1130,6 @@ void mptcp_proto_init(void)
mptcp_stream_ops.shutdown = mptcp_shutdown;
subflow_init();
- pm_init();
if (proto_register(&mptcp_prot, 1) != 0)
panic("Failed to register MPTCP proto.\n");
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 40f0efaef55e..fcf78fc0df84 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -252,7 +252,6 @@ static inline void crypto_key_gen_sha1(u64 *key, u32 *token, u64 *idsn)
void crypto_hmac_sha1(u64 key1, u64 key2, u32 nonce1, u32 nonce2,
u32 *hash_out);
-void pm_init(void);
void pm_new_connection(struct mptcp_sock *msk, int server_side);
void pm_fully_established(struct mptcp_sock *msk);
void pm_connection_closed(struct mptcp_sock *msk);
@@ -261,6 +260,14 @@ void pm_subflow_closed(struct mptcp_sock *msk, u8 id);
void pm_add_addr(struct mptcp_sock *msk, const struct in_addr *addr, u8 id);
void pm_add_addr6(struct mptcp_sock *msk, const struct in6_addr *addr, u8 id);
void pm_rm_addr(struct mptcp_sock *msk, u8 id);
+
+int pm_announce_addr(u32 token, u8 local_id, sa_family_t family,
+ struct in_addr *addr);
+int pm_create_subflow(u32 token, u8 remote_id, sa_family_t family,
+ struct in_addr *addr);
+int pm_remove_addr(u32 token, u8 local_id);
+int pm_remove_subflow(u32 token, u8 remote_id);
+
int pm_addr_signal(struct mptcp_sock *msk, u8 *id,
struct sockaddr_storage *saddr);
int pm_get_local_id(struct request_sock *req, struct sock *sk,
--
2.17.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [MPTCP] [PATCH 1/2] mptcp: Minor changes to path manager interface
@ 2019-09-27 23:42 Peter Krystad
0 siblings, 0 replies; 4+ messages in thread
From: Peter Krystad @ 2019-09-27 23:42 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 4426 bytes --]
Needed preparations so basic path manager can be in it's own file
squashto: Add path manager interface
Signed-off-by: Peter Krystad <peter.krystad(a)linux.intel.com>
---
net/mptcp/pm.c | 31 +++++++++++++++++++++----------
net/mptcp/protocol.c | 1 -
net/mptcp/protocol.h | 9 ++++++++-
3 files changed, 29 insertions(+), 12 deletions(-)
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index c8d6341c9683..20bea1303342 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -10,7 +10,7 @@
/* path manager command handlers */
-int pm_announce_addr(u32 token, sa_family_t family, u8 local_id,
+int pm_announce_addr(u32 token, u8 local_id, sa_family_t family,
struct in_addr *addr)
{
struct mptcp_sock *msk = mptcp_token_get_sock(token);
@@ -50,7 +50,8 @@ int pm_remove_addr(u32 token, u8 local_id)
return 0;
}
-int pm_create_subflow(u32 token, u8 remote_id)
+int pm_create_subflow(u32 token, u8 remote_id, sa_family_t family,
+ struct in_addr *addr)
{
struct mptcp_sock *msk = mptcp_token_get_sock(token);
struct sockaddr_in remote;
@@ -69,7 +70,10 @@ int pm_create_subflow(u32 token, u8 remote_id)
local.sin_family = AF_INET;
local.sin_port = 0;
- local.sin_addr.s_addr = htonl(INADDR_ANY);
+ if (family == AF_INET)
+ local.sin_addr.s_addr = addr->s_addr;
+ else
+ local.sin_addr.s_addr = htonl(INADDR_ANY);
remote.sin_family = msk->pm.remote_family;
remote.sin_port = htons(msk->dport);
@@ -91,16 +95,21 @@ int pm_remove_subflow(u32 token, u8 remote_id)
void pm_new_connection(struct mptcp_sock *msk, int server_side)
{
- pr_debug("msk=%p", msk);
+ struct mptcp_pm_data *pm = &msk->pm;
+
+ pr_debug("msk=%p, token=%u", msk, msk->token);
- msk->pm.server_side = server_side;
+ pm->server_side = server_side;
+ pm->token = msk->token;
}
void pm_fully_established(struct mptcp_sock *msk)
{
+ struct mptcp_pm_data *pm = &msk->pm;
+
pr_debug("msk=%p", msk);
- msk->pm.fully_established = 1;
+ pm->fully_established = 1;
}
void pm_connection_closed(struct mptcp_sock *msk)
@@ -120,12 +129,14 @@ void pm_subflow_closed(struct mptcp_sock *msk, u8 id)
void pm_add_addr(struct mptcp_sock *msk, const struct in_addr *addr, u8 id)
{
+ struct mptcp_pm_data *pm = &msk->pm;
+
pr_debug("msk=%p, addr=%x, remote_id=%d", msk, addr->s_addr, id);
- msk->pm.remote_addr.s_addr = addr->s_addr;
- msk->pm.remote_id = id;
- msk->pm.remote_family = AF_INET;
- msk->pm.remote_valid = 1;
+ pm->remote_addr.s_addr = addr->s_addr;
+ pm->remote_id = id;
+ pm->remote_family = AF_INET;
+ pm->remote_valid = 1;
}
void pm_add_addr6(struct mptcp_sock *msk, const struct in6_addr *addr, u8 id)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index e0ae0a2542d1..45dbfe83b08f 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1440,7 +1440,6 @@ void mptcp_proto_init(void)
panic("Failed to allocate MPTCP pcpu counter\n");
subflow_init();
- pm_init();
if (proto_register(&mptcp_prot, 1) != 0)
panic("Failed to register MPTCP proto.\n");
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index f3f293c82058..6518c7f1c232 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -288,7 +288,6 @@ static inline void crypto_key_gen_sha1(u64 *key, u32 *token, u64 *idsn)
void crypto_hmac_sha1(u64 key1, u64 key2, u32 nonce1, u32 nonce2,
u32 *hash_out);
-void pm_init(void);
void pm_new_connection(struct mptcp_sock *msk, int server_side);
void pm_fully_established(struct mptcp_sock *msk);
void pm_connection_closed(struct mptcp_sock *msk);
@@ -297,6 +296,14 @@ void pm_subflow_closed(struct mptcp_sock *msk, u8 id);
void pm_add_addr(struct mptcp_sock *msk, const struct in_addr *addr, u8 id);
void pm_add_addr6(struct mptcp_sock *msk, const struct in6_addr *addr, u8 id);
void pm_rm_addr(struct mptcp_sock *msk, u8 id);
+
+int pm_announce_addr(u32 token, u8 local_id, sa_family_t family,
+ struct in_addr *addr);
+int pm_create_subflow(u32 token, u8 remote_id, sa_family_t family,
+ struct in_addr *addr);
+int pm_remove_addr(u32 token, u8 local_id);
+int pm_remove_subflow(u32 token, u8 remote_id);
+
int pm_addr_signal(struct mptcp_sock *msk, u8 *id,
struct sockaddr_storage *saddr);
int pm_get_local_id(struct request_sock *req, struct sock *sk,
--
2.17.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-09-27 23:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-07 1:30 [MPTCP] [PATCH 1/2] mptcp: Minor changes to path manager interface Peter Krystad
-- strict thread matches above, loose matches on Subject: below --
2019-09-11 20:57 Paolo Abeni
2019-09-17 18:37 Peter Krystad
2019-09-27 23:42 Peter Krystad
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.