Skip to content

Commit b70b18b

Browse files
matttbemjmartineau
andcommitted
pm: describe the 'laminar' endpoint type
What the flag does, the "conflict" with 'fullmesh', automated tools might set it, what's happening when an ADD_ADDR is received. Co-authored-by: Mat Martineau <[email protected]> Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
1 parent 896618e commit b70b18b

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

pm.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ project.
6969
MPTCP endpoints can be manually configured with this command:
7070

7171
```sh
72-
ip mptcp endpoint add <IP address> dev <interface> [ signal | subflow ] [ backup ] [ fullmesh ]
72+
ip mptcp endpoint add <IP address> dev <interface> [ signal | subflow ] [ laminar ] [ backup ] [ fullmesh ]
7373
```
7474

7575
{: .warning}
@@ -86,12 +86,18 @@ One of the following flags needs to be set:
8686
subflow. A client would typically do this.
8787

8888
Optionally, the following flags can be added next to one of the previous ones:
89+
- `laminar`: (introduced in [v6.18](https://git.kernel.org/torvalds/c/539f6b9de39e))
90+
The endpoint will be used to create new subflows from the associated address
91+
to additional addresses announced by the other peer. It is typically used with
92+
the `subflow` flag, and this endpoint will only be used in one subflow per
93+
MPTCP connection. A client would typically create endpoints with this
94+
`laminar` flag and the `subflow` one.
8995
- `backup`: Subflows created from this endpoint instruct the peers to only send
9096
data on it when all non-backup subflows are unavailable.
9197
- `fullmesh`: The MPTCP path manager will try to create an additional subflow
9298
for each known peer address, using this endpoint as the source IP address. It
93-
is typically used with the `subflow` flag, and it is not compatible with the
94-
`signal` one.
99+
is typically used with the `subflow` flag, it is not compatible with the
100+
`signal` one, and it takes precedence over the `laminar` one.
95101

96102
It is also possible to specify a `port` number with the `signal` endpoints: this
97103
will advertise an IP address and a port number, and accept new subflows on this
@@ -171,8 +177,9 @@ change in the future, if someone implements the ticket
171177
[#334](https://github.com/multipath-tcp/mptcp_net-next/issues/334).
172178

173179
By default, [automated tools](#automatic-configuration) will add
174-
[`subflow`](#endpoints) endpoints, not [`signal`](#endpoints) ones. This
175-
behavior can be modified, please check their manual.
180+
[`subflow`](#endpoints) endpoints (eventually with the [`laminar`](#endpoints)
181+
flag), not [`signal`](#endpoints) ones. This behavior can be modified, please
182+
check their manual.
176183

177184
#### Creating new subflows
178185

@@ -187,9 +194,12 @@ the `subflows` [limit](#limits):
187194
- Upon the reception of an [`ADD_ADDR`](#announcing-new-addresses), and if the
188195
`add_addr_accepted` [limits](#limits) has not been reached yet, a new subflow
189196
will be created using the local address the routing configuration will pick,
190-
except if there are endpoints with the [`fullmesh`](#endpoints) flag. In this
191-
case, each endpoints with the [`fullmesh`](#endpoints) flag will be used to
192-
create a new subflow to the announced address.
197+
except if there are endpoints with the [`fullmesh`](#endpoints) or
198+
[`laminar`](#endpoints) flags. In the `fullmesh` case, each endpoint with the
199+
[`fullmesh`](#endpoints) flag will be used to create a new subflow to the
200+
announced address. In the `laminar` case, an unused [`laminar`](#endpoints)
201+
endpoint, if any, will be picked to create one subflow to the announced
202+
address.
193203

194204
Note that when subflows are closed before the end of a connection -- e.g. due to
195205
an error on the network, or if the other peer closed subflows -- the

0 commit comments

Comments
 (0)