You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
new function would've been called from "packet arrived callback" that was set up on instance of FT by calling pfring_ft_set_flow_packet_callback
app would implement necessary logic to decide if and when to call pfring_ft_expire_flow based on data in pfring_ft_flow * and data in pfring_ft_flow_value.user
new function would cause FT to expire flow, triggering callback that was prepared via pfring_ft_set_flow_export_callback
further packets arriving into this (now expired) flow, would instead cause FT to start a new one
"global" FT parameters like flow_life_timeout and flow_idle_timeuout would still work as usual and be completely under control of FT instance
In my data pipeline, I'm now handling large flows by either filtering them out or slicing them after they were captured - in separate application. Slicing them directly on source of capture would be prefered.
As an example scenario, let's assume I'd like slicing of YouTube flows on every 1000 packets (just for illustration purposes, since scenarios I require are more complex than this and don't necessarily rely on L7 data). Implementation of such hypothetical scenario would look like like this:
create FT, attach custom struct to each flow and setup callbacks:
Hi!
I would like to slice some (but not all) flows passing through my app. To do this, I would like to propose adding:
FT
by callingpfring_ft_set_flow_packet_callback
pfring_ft_expire_flow
based on data inpfring_ft_flow *
and data inpfring_ft_flow_value.user
FT
to expire flow, triggering callback that was prepared viapfring_ft_set_flow_export_callback
flow_life_timeout
andflow_idle_timeuout
would still work as usual and be completely under control ofFT
instanceIn my data pipeline, I'm now handling large flows by either filtering them out or slicing them after they were captured - in separate application. Slicing them directly on source of capture would be prefered.
As an example scenario, let's assume I'd like slicing of
YouTube
flows on every 1000 packets (just for illustration purposes, since scenarios I require are more complex than this and don't necessarily rely on L7 data). Implementation of such hypothetical scenario would look like like this:create FT, attach custom
struct
to each flow and setup callbacks:in
packet_added_cb
, checknDPI
forYouTube
and count packets inUserData.my_slice_count
Later, also in
packet_added_cb
, app checks custom state (counter) and notifies FT to expire given flow:Thanks in advance if you consider implementing this!
The text was updated successfully, but these errors were encountered: