Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iproute2: change backup mode (MP_PRIO) for active connections #158

Closed
1 of 2 tasks
matttbe opened this issue Feb 11, 2021 · 3 comments
Closed
1 of 2 tasks

iproute2: change backup mode (MP_PRIO) for active connections #158

matttbe opened this issue Feb 11, 2021 · 3 comments

Comments

@matttbe
Copy link
Member

matttbe commented Feb 11, 2021

Issue #51 added MP_PRIO support but this support cannot be validated with the current version of iproute2.

With iproute2, you can interact with MPTCP PM to add and remove addresses with different properties. But you cannot change these properties for active addresses. The idea would be to support ip mptcp endpoint change ADDRESS backup [on/off] or similar.

Once this support is added, emitting MP_PRIO can be validated with packetdrill.

  • iproute2: support a change mode
  • packetdrill validation
@matttbe matttbe mentioned this issue Feb 11, 2021
4 tasks
@dcaratti dcaratti self-assigned this Feb 25, 2021
@dcaratti
Copy link
Contributor

dcaratti commented Apr 8, 2021

Issue #51 added MP_PRIO support but this support cannot be validated with the current version of iproute2.

With iproute2, you can interact with MPTCP PM to add and remove addresses with different properties. But you cannot change these properties for active addresses. The idea would be to support ip mptcp endpoint change ADDRESS backup [on/off] or similar.

Once this support is added, emitting MP_PRIO can be validated with packetdrill.

  • iproute2: support a change mode
  • packetdrill validation

@matttbe, I see that the current kernel is expecting address family + address (and optionally port number) for selecting which subflows should send the MP_PRIO, instead of 'id'. Is there a reason behind this? (if not, I can try to write a small patch for Linux that changes this)

@matttbe
Copy link
Member Author

matttbe commented Apr 8, 2021

As discussed at the last meeting:

Is there a reason behind this?

Probably we didn't think about adding support for the ID, we certainly focus on testing this with pm_nl where we already had the IP + port and we only implemented that.

But consistency is important, so yes please add support for that in the Linux kernel :)

fengguang pushed a commit to 0day-ci/linux that referenced this issue Nov 11, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
fengguang pushed a commit to 0day-ci/linux that referenced this issue Nov 18, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
matttbe pushed a commit that referenced this issue Nov 19, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
matttbe pushed a commit that referenced this issue Nov 19, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 20, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 21, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 23, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
matttbe pushed a commit that referenced this issue Nov 23, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 24, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 25, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 26, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 27, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
matttbe pushed a commit that referenced this issue Nov 29, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Nov 30, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Dec 1, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
jenkins-tessares pushed a commit that referenced this issue Dec 2, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
matttbe pushed a commit that referenced this issue Dec 2, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
matttbe pushed a commit that referenced this issue Dec 2, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
matttbe pushed a commit that referenced this issue Dec 2, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: #158
Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Dec 7, 2021
a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
@matttbe
Copy link
Member Author

matttbe commented Dec 16, 2021

kernel and iproute2 patches have been sent upstream

@matttbe matttbe closed this as completed Dec 16, 2021
antonyantony pushed a commit to antonyantony/iproute2 that referenced this issue Dec 22, 2021
Linux supports 'MPTCP_PM_CMD_SET_FLAGS' since v5.12, and this control has
recently been extended to allow setting flags for a given endpoint id.
Although there is no use for changing 'signal' or 'subflow' flags, it can
be helpful to set/clear the backup bit on existing endpoints: add the 'ip
mptcp endpoint change <...>' command for this purpose.

Link: multipath-tcp/mptcp_net-next#158
Acked-by: Matthieu Baerts <[email protected]>
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: David Ahern <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 30, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 30, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 30, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 30, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 30, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 30, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
imaami pushed a commit to imaami/linux that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 1, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 1, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 1, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 1, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 1, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 1, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 1, 2022
[ Upstream commit 602837e ]

a non-zero 'id' is sufficient to identify MPTCP endpoints: allow changing
the value of 'backup' bit by simply specifying the endpoint id.

Link: multipath-tcp/mptcp_net-next#158
Signed-off-by: Davide Caratti <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants