2021-07-29 10:20:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:44 +08:00
|
|
|
|
2021-10-26 09:57:28 +08:00
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
2021-07-29 10:20:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:52 +08:00
|
|
|
|
|
|
|
|
|
2022-02-18 12:25:53 +08:00
|
|
|
|
2021-07-29 10:20:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-02-18 12:25:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-02-09 12:05:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-18 11:29:34 +08:00
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-26 09:57:28 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-19 17:51:46 +08:00
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
mctp: Implement message fragmentation & reassembly
This change implements MCTP fragmentation (based on route & device MTU),
and corresponding reassembly.
The MCTP specification only allows for fragmentation on the originating
message endpoint, and reassembly on the destination endpoint -
intermediate nodes do not need to reassemble/refragment. Consequently,
we only fragment in the local transmit path, and reassemble
locally-bound packets. Messages are required to be in-order, so we
simply cancel reassembly on out-of-order or missing packets.
In the fragmentation path, we just break up the message into MTU-sized
fragments; the skb structure is a simple copy for now, which we can later
improve with a shared data implementation.
For reassembly, we keep track of incoming message fragments using the
existing tag infrastructure, allocating a key on the (src,dest,tag)
tuple, and reassembles matching fragments into a skb->frag_list.
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-29 10:20:50 +08:00
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
|
|
|
|
|
mctp: Implement message fragmentation & reassembly
This change implements MCTP fragmentation (based on route & device MTU),
and corresponding reassembly.
The MCTP specification only allows for fragmentation on the originating
message endpoint, and reassembly on the destination endpoint -
intermediate nodes do not need to reassemble/refragment. Consequently,
we only fragment in the local transmit path, and reassemble
locally-bound packets. Messages are required to be in-order, so we
simply cancel reassembly on out-of-order or missing packets.
In the fragmentation path, we just break up the message into MTU-sized
fragments; the skb structure is a simple copy for now, which we can later
improve with a shared data implementation.
For reassembly, we keep track of incoming message fragments using the
existing tag infrastructure, allocating a key on the (src,dest,tag)
tuple, and reassembles matching fragments into a skb->frag_list.
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-29 10:20:50 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:09 +08:00
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
2024-02-19 17:51:50 +08:00
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
2022-02-09 12:05:57 +08:00
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mctp: Implement message fragmentation & reassembly
This change implements MCTP fragmentation (based on route & device MTU),
and corresponding reassembly.
The MCTP specification only allows for fragmentation on the originating
message endpoint, and reassembly on the destination endpoint -
intermediate nodes do not need to reassemble/refragment. Consequently,
we only fragment in the local transmit path, and reassemble
locally-bound packets. Messages are required to be in-order, so we
simply cancel reassembly on out-of-order or missing packets.
In the fragmentation path, we just break up the message into MTU-sized
fragments; the skb structure is a simple copy for now, which we can later
improve with a shared data implementation.
For reassembly, we keep track of incoming message fragments using the
existing tag infrastructure, allocating a key on the (src,dest,tag)
tuple, and reassembles matching fragments into a skb->frag_list.
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-29 10:20:50 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-29 11:01:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-02-09 12:05:57 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:49 +08:00
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-26 09:57:28 +08:00
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
2021-10-26 09:57:28 +08:00
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-26 09:57:28 +08:00
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-29 11:01:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-26 09:57:28 +08:00
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-10 10:38:34 +08:00
|
|
|
|
2023-06-18 11:33:55 +02:00
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-20 16:10:53 +08:00
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
2021-09-29 15:26:07 +08:00
|
|
|
|
|
|
|
|
|
2022-02-09 12:05:57 +08:00
|
|
|
|
2024-02-19 17:51:50 +08:00
|
|
|
|
2024-02-19 17:51:46 +08:00
|
|
|
|
2022-02-09 12:05:57 +08:00
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:46 +08:00
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-08 11:47:35 -07:00
|
|
|
|
2021-07-29 10:20:44 +08:00
|
|
|
|
|
|
|
|
|
2021-07-29 10:20:41 +08:00
|
|
|
|