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