class Matchers
Defined at line 1702 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/cpp/fidl/fuchsia.net.filter/cpp/natural_types.h
The criteria that a packet must match for a rule to be applied.
Each field is optional, and will only be checked if provided. An unset
field will be considered to match any packet. (An entirely empty table
would match every packet.) Another way to think of the matching criteria
for a given rule is as an AND of every provided matcher.
Some matchers are only available in certain contexts. For example, the
`in_interface` is not available in the `EGRESS` hook. If a matcher is
provided that is not available in the context in which the rule is
installed, the installation will fail with an error.
Public Methods
void Matchers (Storage_ storage)
void Matchers ()
Defined at line 1707 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/cpp/fidl/fuchsia.net.filter/cpp/natural_types.h
void Matchers (Matchers && )
Defined at line 1708 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/cpp/fidl/fuchsia.net.filter/cpp/natural_types.h
void Matchers (const Matchers & other)
Matchers & operator= (Matchers && )
Defined at line 1709 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/cpp/fidl/fuchsia.net.filter/cpp/natural_types.h
Matchers & operator= (const Matchers & other)
bool operator== (const Matchers & other)
bool operator!= (const Matchers & other)
bool IsEmpty ()
const std::optional< ::fuchsia_net_matchers::Interface> & in_interface ()
The interface on which the packet entered the stack.
Only available in `INGRESS`, `LOCAL_INGRESS`, and `FORWARDING`.
::std::optional< ::fuchsia_net_matchers::Interface> & in_interface ()
The interface on which the packet entered the stack.
Only available in `INGRESS`, `LOCAL_INGRESS`, and `FORWARDING`.
Matchers & in_interface (std::optional< ::fuchsia_net_matchers::Interface> value)
The interface on which the packet entered the stack.
Only available in `INGRESS`, `LOCAL_INGRESS`, and `FORWARDING`.
const std::optional< ::fuchsia_net_matchers::Interface> & out_interface ()
The interface through which the packet exits the stack.
Only available in `FORWARDING`, `LOCAL_EGRESS`, and `EGRESS`.
::std::optional< ::fuchsia_net_matchers::Interface> & out_interface ()
The interface through which the packet exits the stack.
Only available in `FORWARDING`, `LOCAL_EGRESS`, and `EGRESS`.
Matchers & out_interface (std::optional< ::fuchsia_net_matchers::Interface> value)
The interface through which the packet exits the stack.
Only available in `FORWARDING`, `LOCAL_EGRESS`, and `EGRESS`.
const std::optional< ::fuchsia_net_matchers::Address> & src_addr ()
Matcher for the source IP address.
::std::optional< ::fuchsia_net_matchers::Address> & src_addr ()
Matcher for the source IP address.
Matchers & src_addr (std::optional< ::fuchsia_net_matchers::Address> value)
Matcher for the source IP address.
const std::optional< ::fuchsia_net_matchers::Address> & dst_addr ()
Matcher for the destination IP address.
::std::optional< ::fuchsia_net_matchers::Address> & dst_addr ()
Matcher for the destination IP address.
Matchers & dst_addr (std::optional< ::fuchsia_net_matchers::Address> value)
Matcher for the destination IP address.
const std::optional< ::fuchsia_net_matchers::PacketTransportProtocol> & transport_protocol ()
Matchers for the transport layer protocol.
Note that the variants of the `TransportProtocol` union allow matching
on the transport layer protocol itself; to match on specific properties
at the transport layer (such as TCP or UDP ports), clients should use
the fields of a protocol-specific matcher.
::std::optional< ::fuchsia_net_matchers::PacketTransportProtocol> & transport_protocol ()
Matchers for the transport layer protocol.
Note that the variants of the `TransportProtocol` union allow matching
on the transport layer protocol itself; to match on specific properties
at the transport layer (such as TCP or UDP ports), clients should use
the fields of a protocol-specific matcher.
Matchers & transport_protocol (std::optional< ::fuchsia_net_matchers::PacketTransportProtocol> value)
Matchers for the transport layer protocol.
Note that the variants of the `TransportProtocol` union allow matching
on the transport layer protocol itself; to match on specific properties
at the transport layer (such as TCP or UDP ports), clients should use
the fields of a protocol-specific matcher.
const std::optional< ::fuchsia_ebpf::ProgramId> & ebpf_program ()
An eBPF program used as a matcher.
The program should be registered by calling
['fuchsia.net.filter.NamespaceController/RegisterEbpfProgram'] prior to
committing the rule containing the matcher.
When the program is executed, a non-zero result from the program
indicates a match.
::std::optional< ::fuchsia_ebpf::ProgramId> & ebpf_program ()
An eBPF program used as a matcher.
The program should be registered by calling
['fuchsia.net.filter.NamespaceController/RegisterEbpfProgram'] prior to
committing the rule containing the matcher.
When the program is executed, a non-zero result from the program
indicates a match.
Matchers & ebpf_program (std::optional< ::fuchsia_ebpf::ProgramId> value)
An eBPF program used as a matcher.
The program should be registered by calling
['fuchsia.net.filter.NamespaceController/RegisterEbpfProgram'] prior to
committing the rule containing the matcher.
When the program is executed, a non-zero result from the program
indicates a match.
void Matchers (::fidl::internal::DefaultConstructPossiblyInvalidObjectTag )
Friends
class MemberVisitor
class NaturalTableCodingTraits