Instead of iterating over all endpoints, under RCU read lock, just to check if one of them as the fullmesh flag, we can keep a counter of fullmesh endpoint, similar to what is done with the other flags. This counter is now checked, before iterating over all endpoints. Similar to the other counters, this new one is also exposed. A userspace app can then know when it is being used in a fullmesh mode, with potentially (too) many subflows.
Showing the changes to include/uapi (1 of 4 files). Show all
Unified · Split
| @@ -70,7 +70,8 @@ struct mptcp_info { · 69 unmodified lines | ||
| 70 | 70 | __u64 mptcpi_bytes_acked; |
| 71 | 71 | __u8 mptcpi_subflows_total; |
| 72 | 72 | __u8 mptcpi_endp_laminar_max; |
| 73 | − __u8 reserved[2]; | |
| 73 | + __u8 mptcpi_endp_fullmesh_max; | |
| 74 | + __u8 reserved; | |
| 74 | 75 | __u32 mptcpi_last_data_sent; |
| 75 | 76 | __u32 mptcpi_last_data_recv; |
| 76 | 77 | __u32 mptcpi_last_ack_recv; |