aboutgitcodebugslistschat
path: root/flow.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-05-21 15:57:06 +1000
committerStefano Brivio <sbrivio@redhat.com>2024-05-22 23:21:01 +0200
commit43571852e62dae90fd0404b8a7c73e727930718e (patch)
treed37eb4b753a1f6a7bddbd2055080a800755db4f3 /flow.c
parent0060acd11b191e0699e2c588a565c4929523db06 (diff)
downloadpasst-43571852e62dae90fd0404b8a7c73e727930718e.tar
passt-43571852e62dae90fd0404b8a7c73e727930718e.tar.gz
passt-43571852e62dae90fd0404b8a7c73e727930718e.tar.bz2
passt-43571852e62dae90fd0404b8a7c73e727930718e.tar.lz
passt-43571852e62dae90fd0404b8a7c73e727930718e.tar.xz
passt-43571852e62dae90fd0404b8a7c73e727930718e.tar.zst
passt-43571852e62dae90fd0404b8a7c73e727930718e.zip
flow: Make side 0 always be the initiating side
Each flow in the flow table has two sides, 0 and 1, representing the two interfaces between which passt/pasta will forward data for that flow. Which side is which is currently up to the protocol specific code: TCP uses side 0 for the host/"sock" side and 1 for the guest/"tap" side, except for spliced connections where it uses 0 for the initiating side and 1 for the target side. ICMP also uses 0 for the host/"sock" side and 1 for the guest/"tap" side, but in its case the latter is always also the initiating side. Make this generically consistent by always using side 0 for the initiating side and 1 for the target side. This doesn't simplify a lot for now, and arguably makes TCP slightly more complex, since we add an extra field to the connection structure to record which is the guest facing side. This is an interim change, which we'll be able to remove later. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>q Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'flow.c')
-rw-r--r--flow.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/flow.c b/flow.c
index da71fe1..91c0046 100644
--- a/flow.c
+++ b/flow.c
@@ -152,12 +152,10 @@ static void flow_set_state(struct flow_common *f, enum flow_state state)
* flow_set_type() - Set type and move to TYPED
* @flow: Flow to change state
* @type: Type for new flow
- * @iniside: Which side initiated the new flow
*
* Return: @flow
*/
-union flow *flow_set_type(union flow *flow, enum flow_type type,
- unsigned iniside)
+union flow *flow_set_type(union flow *flow, enum flow_type type)
{
struct flow_common *f = &flow->f;
@@ -165,7 +163,6 @@ union flow *flow_set_type(union flow *flow, enum flow_type type,
ASSERT(flow_new_entry == flow && f->state == FLOW_STATE_NEW);
ASSERT(f->type == FLOW_TYPE_NONE);
- (void)iniside;
f->type = type;
flow_set_state(f, FLOW_STATE_TYPED);
return flow;