class Matchers

Defined at line 2373 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 2382 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 2386 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 2393 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 2401 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 2412 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 2416 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 2423 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 2431 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 2444 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 2449 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 2457 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 2466 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 2470 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 2475 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 2483 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 2501 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 2511 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 2519 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 2535 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 2539 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 2551 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 2559 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 2440 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 2497 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)