class Matchers

Defined at line 2503 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.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 Members

static const fidl_type_t * FidlType

Public Methods

bool IsEmpty ()

Returns whether no field is set.

const ::fuchsia::net::matchers::Interface & in_interface ()

The interface on which the packet entered the stack.

Only available in `INGRESS`, `LOCAL_INGRESS`, and `FORWARDING`.

Defined at line 2512 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

bool has_in_interface ()

Defined at line 2516 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

::fuchsia::net::matchers::Interface * mutable_in_interface ()

The interface on which the packet entered the stack.

Only available in `INGRESS`, `LOCAL_INGRESS`, and `FORWARDING`.

Defined at line 2523 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

void clear_in_interface ()

Defined at line 2531 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

const ::fuchsia::net::matchers::Interface & out_interface ()

The interface through which the packet exits the stack.

Only available in `FORWARDING`, `LOCAL_EGRESS`, and `EGRESS`.

Defined at line 2542 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

bool has_out_interface ()

Defined at line 2546 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

::fuchsia::net::matchers::Interface * mutable_out_interface ()

The interface through which the packet exits the stack.

Only available in `FORWARDING`, `LOCAL_EGRESS`, and `EGRESS`.

Defined at line 2553 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

void clear_out_interface ()

Defined at line 2561 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

bool has_src_addr ()

Defined at line 2574 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

::fuchsia::net::matchers::Address * mutable_src_addr ()

Matcher for the source IP address.

Defined at line 2579 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

void clear_src_addr ()

Defined at line 2587 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

const ::fuchsia::net::matchers::Address & dst_addr ()

Matcher for the destination IP address.

Defined at line 2596 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

bool has_dst_addr ()

Defined at line 2600 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

::fuchsia::net::matchers::Address * mutable_dst_addr ()

Matcher for the destination IP address.

Defined at line 2605 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

void clear_dst_addr ()

Defined at line 2613 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

bool has_transport_protocol ()

Defined at line 2631 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

::fuchsia::net::matchers::PacketTransportProtocol * mutable_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.

Defined at line 2641 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

void clear_transport_protocol ()

Defined at line 2649 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

const ::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.

Defined at line 2665 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

bool has_ebpf_program ()

Defined at line 2669 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

::fuchsia::ebpf::ProgramId * mutable_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.

Defined at line 2681 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

void clear_ebpf_program ()

Defined at line 2689 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

Matchers & set_in_interface (::fuchsia::net::matchers::Interface _value)
Matchers & set_out_interface (::fuchsia::net::matchers::Interface _value)
Matchers & set_src_addr (::fuchsia::net::matchers::Address _value)
Matchers & set_dst_addr (::fuchsia::net::matchers::Address _value)
Matchers & set_transport_protocol (::fuchsia::net::matchers::PacketTransportProtocol _value)
Matchers & set_ebpf_program (::fuchsia::ebpf::ProgramId _value)
void Matchers ()
void Matchers (Matchers && other)
const ::fuchsia::net::matchers::Address & src_addr ()

Matcher for the source IP address.

Defined at line 2570 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

const ::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.

Defined at line 2627 of file fidling/gen/sdk/fidl/fuchsia.net.filter/fuchsia.net.filter/hlcpp/fuchsia/net/filter/cpp/fidl.h

void ~Matchers ()
Matchers & operator= (Matchers && other)
::std::unique_ptr<Matchers> New ()
void Encode (::fidl::Encoder * _encoder, size_t _offset, std::optional< ::fidl::HandleInformation> maybe_handle_info)
void Decode (::fidl::Decoder * _decoder, Matchers * _value, size_t _offset)
zx_status_t Clone (Matchers * _result)