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)