retina_core

Module filter

Source
Expand description

Utilities for compile-time filter generation and subscription handling.

This module’s exports will be most relevant for those adding new filter utilities and/or datatypes. Nothing in this module is needed for writing an ordinary Retina application.

Re-exports§

Modules§

  • For each connection, the Retina framework applies multiple filtering stages as packets are received in order to determine (1) whether packets from that connection should continue to be processed and (2) what to do with these packets.
  • Utilities for defining how a subscribed datatype is tracked and delivered.

Structs§

Enums§

Type Aliases§

  • Filter applied to disambiguate and deliver matched connection-level subscriptions (those delivered at connection termination).
  • Software filter applied to each packet. Will drop, deliver, and/or forward packets to the connection manager. If hardware assist is enabled, the framework will additionally attempt to install the filter in the NICs.
  • Filter applied to disambiguate and deliver matched packet-level subscriptions that required stateful filtering (i.e., could not be delivered at the packet stage).
  • Filter applied to the first packet of a connection to initialize actions.
  • Filter applied when the application-layer protocol is identified. This may drop connections or update actions. It may also drain buffered packets to packet-level subscriptions that match at the protocol stage.
  • Filter applied when the application-layer session is parsed. This may drop connections, drop sessions, or update actions. It may also deliver session-level subscriptions.