aboutgitcodebugslistschat
path: root/flow_table.h
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-05-21 15:57:07 +1000
committerStefano Brivio <sbrivio@redhat.com>2024-05-22 23:21:03 +0200
commit8a2accb847926d0354f3a45d8c3e00933c9d7e00 (patch)
tree712f1c59549d8a540425160433b8c5c2ff9dfc94 /flow_table.h
parent43571852e62dae90fd0404b8a7c73e727930718e (diff)
downloadpasst-8a2accb847926d0354f3a45d8c3e00933c9d7e00.tar
passt-8a2accb847926d0354f3a45d8c3e00933c9d7e00.tar.gz
passt-8a2accb847926d0354f3a45d8c3e00933c9d7e00.tar.bz2
passt-8a2accb847926d0354f3a45d8c3e00933c9d7e00.tar.lz
passt-8a2accb847926d0354f3a45d8c3e00933c9d7e00.tar.xz
passt-8a2accb847926d0354f3a45d8c3e00933c9d7e00.tar.zst
passt-8a2accb847926d0354f3a45d8c3e00933c9d7e00.zip
flow: Record the pifs for each side of each flow
Currently we have no generic information flows apart from the type and state, everything else is specific to the flow type. Start introducing generic flow information by recording the pifs which the flow connects. To keep track of what information is valid, introduce new flow states: INI for when the initiating side information is complete, and TGT for when both sides information is complete, but we haven't chosen the flow type yet. For now, these states don't do an awful lot, but they'll become more important as we add more generic information. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'flow_table.h')
-rw-r--r--flow_table.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/flow_table.h b/flow_table.h
index 28e36b9..1b16349 100644
--- a/flow_table.h
+++ b/flow_table.h
@@ -107,6 +107,9 @@ static inline flow_sidx_t flow_sidx(const struct flow_common *f,
union flow *flow_alloc(void);
void flow_alloc_cancel(union flow *flow);
+void flow_initiate(union flow *flow, uint8_t pif);
+void flow_target(union flow *flow, uint8_t pif);
+
union flow *flow_set_type(union flow *flow, enum flow_type type);
#define FLOW_SET_TYPE(flow_, t_, var_) (&flow_set_type((flow_), (t_))->var_)