You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sub_type may indicate more details depending on type, e.g. - github.com/cilium/cilium/pkg/monitor/api.Trace* - github.com/cilium/cilium/pkg/monitor/api.Drop* - github.com/cilium/cilium/pkg/monitor/api.DbgCapture*
DNS
DNS flow. This is basically directly mapped from Cilium's LogRecordDNS:
Deprecated. Deprecated. This suffers from false negatives due to protobuf not being able to distinguish between the value being false or it being absent. Please use is_reply instead.
is_reply indicates that this was a packet (L4) or message (L7) in the reply direction. May be absent (in which case it is unknown whether it is a reply or not).
Deprecated. This is a temporary workaround to support summary field for pb.Flow without duplicating logic from the old parser. This field will be removed once we fully migrate to the new parser.
extensions can be used to add arbitrary additional metadata to flows. This can be used to extend functionality for other Hubble compatible APIs, or experiment with new functionality without needing to change the public API.
The CiliumNetworkPolicies denying the ingress of the flow.
FlowFilter
FlowFilter represent an individual flow filter. All fields are optional. If
multiple fields are set, then all fields must match for the filter to match.
source_ip filters by a list of source ips. Each of the source ips can be specified as an exact match (e.g. "1.1.1.1") or as a CIDR range (e.g. "1.1.1.0/24").
source_pod filters by a list of source pod name prefixes, optionally within a given namespace (e.g. "xwing", "kube-system/coredns-"). The pod name can be omitted to only filter by namespace (e.g. "kube-system/") or the namespace can be omitted to filter for pods in any namespace (e.g. "/xwing")
destination_ip filters by a list of destination ips. Each of the destination ips can be specified as an exact match (e.g. "1.1.1.1") or as a CIDR range (e.g. "1.1.1.0/24").
cel_expression takes a common expression language (CEL) expression returning a boolean to determine if the filter matched or not. You can use the _flow variable to access fields on the flow using the flow.Flow protobuf field names. See https://github.com/google/cel-spec/blob/v0.14.0/doc/intro.md#introduction for more details on CEL and accessing the protobuf fields in CEL. Using CEL has performance cost compared to other filters, so prefer using non-CEL filters when possible, and try to specify CEL filters last in the list of FlowFilters.
source_xlated is the post-translation source IP when the flow was SNATed. When "source_xlated" is set, the "source" field is populated with the pre-translation source IP address.
TraceContext contains trace context propagation data, i.e. information about a
distributed trace.
For more information about trace context, check the W3C Trace Context specification.
AgentEventType is the type of agent event. These values are shared with type
AgentNotification in pkg/monitor/api/types.go.
Name
Number
Description
AGENT_EVENT_UNKNOWN
0
AGENT_STARTED
2
POLICY_UPDATED
3
POLICY_DELETED
4
ENDPOINT_REGENERATE_SUCCESS
5
ENDPOINT_REGENERATE_FAILURE
6
ENDPOINT_CREATED
7
ENDPOINT_DELETED
8
IPCACHE_UPSERTED
9
IPCACHE_DELETED
10
SERVICE_UPSERTED
11
SERVICE_DELETED
12
AuthType
These types correspond to definitions in pkg/policy/l4.go.
Name
Number
Description
DISABLED
0
SPIRE
1
TEST_ALWAYS_FAIL
2
DebugCapturePoint
These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h.
Name
Number
Description
DBG_CAPTURE_POINT_UNKNOWN
0
DBG_CAPTURE_DELIVERY
4
DBG_CAPTURE_FROM_LB
5
DBG_CAPTURE_AFTER_V46
6
DBG_CAPTURE_AFTER_V64
7
DBG_CAPTURE_PROXY_PRE
8
DBG_CAPTURE_PROXY_POST
9
DBG_CAPTURE_SNAT_PRE
10
DBG_CAPTURE_SNAT_POST
11
DebugEventType
These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h.
Name
Number
Description
DBG_EVENT_UNKNOWN
0
DBG_GENERIC
1
DBG_LOCAL_DELIVERY
2
DBG_ENCAP
3
DBG_LXC_FOUND
4
DBG_POLICY_DENIED
5
DBG_CT_LOOKUP
6
DBG_CT_LOOKUP_REV
7
DBG_CT_MATCH
8
DBG_CT_CREATED
9
DBG_CT_CREATED2
10
DBG_ICMP6_HANDLE
11
DBG_ICMP6_REQUEST
12
DBG_ICMP6_NS
13
DBG_ICMP6_TIME_EXCEEDED
14
DBG_CT_VERDICT
15
DBG_DECAP
16
DBG_PORT_MAP
17
DBG_ERROR_RET
18
DBG_TO_HOST
19
DBG_TO_STACK
20
DBG_PKT_HASH
21
DBG_LB6_LOOKUP_FRONTEND
22
DBG_LB6_LOOKUP_FRONTEND_FAIL
23
DBG_LB6_LOOKUP_BACKEND_SLOT
24
DBG_LB6_LOOKUP_BACKEND_SLOT_SUCCESS
25
DBG_LB6_LOOKUP_BACKEND_SLOT_V2_FAIL
26
DBG_LB6_LOOKUP_BACKEND_FAIL
27
DBG_LB6_REVERSE_NAT_LOOKUP
28
DBG_LB6_REVERSE_NAT
29
DBG_LB4_LOOKUP_FRONTEND
30
DBG_LB4_LOOKUP_FRONTEND_FAIL
31
DBG_LB4_LOOKUP_BACKEND_SLOT
32
DBG_LB4_LOOKUP_BACKEND_SLOT_SUCCESS
33
DBG_LB4_LOOKUP_BACKEND_SLOT_V2_FAIL
34
DBG_LB4_LOOKUP_BACKEND_FAIL
35
DBG_LB4_REVERSE_NAT_LOOKUP
36
DBG_LB4_REVERSE_NAT
37
DBG_LB4_LOOPBACK_SNAT
38
DBG_LB4_LOOPBACK_SNAT_REV
39
DBG_CT_LOOKUP4
40
DBG_RR_BACKEND_SLOT_SEL
41
DBG_REV_PROXY_LOOKUP
42
DBG_REV_PROXY_FOUND
43
DBG_REV_PROXY_UPDATE
44
DBG_L4_POLICY
45
DBG_NETDEV_IN_CLUSTER
46
DBG_NETDEV_ENCAP4
47
DBG_CT_LOOKUP4_1
48
DBG_CT_LOOKUP4_2
49
DBG_CT_CREATED4
50
DBG_CT_LOOKUP6_1
51
DBG_CT_LOOKUP6_2
52
DBG_CT_CREATED6
53
DBG_SKIP_PROXY
54
DBG_L4_CREATE
55
DBG_IP_ID_MAP_FAILED4
56
DBG_IP_ID_MAP_FAILED6
57
DBG_IP_ID_MAP_SUCCEED4
58
DBG_IP_ID_MAP_SUCCEED6
59
DBG_LB_STALE_CT
60
DBG_INHERIT_IDENTITY
61
DBG_SK_LOOKUP4
62
DBG_SK_LOOKUP6
63
DBG_SK_ASSIGN
64
DBG_L7_LB
65
DBG_SKIP_POLICY
66
DropReason
These values are shared with pkg/monitor/api/drop.go and bpf/lib/common.h.
Note that non-drop reasons (i.e. values less than api.DropMin) are not used
here.
A BPF program wants to tail call into bpf_host, but the host datapath hasn't been loaded yet.
DROP_EP_NOT_READY
203
A BPF program wants to tail call some endpoint's policy program in cilium_call_policy, but the program is not available.
DROP_NO_EGRESS_IP
204
An Egress Gateway node matched a packet against an Egress Gateway policy that didn't select a valid Egress IP.
EventType
EventType are constants are based on the ones from <linux/perf_event.h>.
Name
Number
Description
UNKNOWN
0
EventSample
9
EventSample is equivalent to PERF_RECORD_SAMPLE.
RecordLost
2
RecordLost is equivalent to PERF_RECORD_LOST.
FlowType
Name
Number
Description
UNKNOWN_TYPE
0
L3_L4
1
not sure about the underscore here, but L34 also reads strange
L7
2
SOCK
3
IPVersion
Name
Number
Description
IP_NOT_USED
0
IPv4
1
IPv6
2
L7FlowType
This enum corresponds to Cilium's L7 accesslog FlowType:
Name
Number
Description
UNKNOWN_L7_TYPE
0
REQUEST
1
RESPONSE
2
SAMPLE
3
LostEventSource
Name
Number
Description
UNKNOWN_LOST_EVENT_SOURCE
0
PERF_EVENT_RING_BUFFER
1
PERF_EVENT_RING_BUFFER indicates that events were dropped in the BPF perf event ring buffer, indicating that userspace agent did not keep up with the events produced by the datapath.
OBSERVER_EVENTS_QUEUE
2
OBSERVER_EVENTS_QUEUE indicates that events were dropped because the Hubble events queue was full, indicating that the Hubble observer did not keep up.
HUBBLE_RING_BUFFER
3
HUBBLE_RING_BUFFER indicates that the event was dropped because it could not be read from Hubble's ring buffer in time before being overwritten.
SocketTranslationPoint
This mirrors enum xlate_point in bpf/lib/trace_sock.h
Name
Number
Description
SOCK_XLATE_POINT_UNKNOWN
0
SOCK_XLATE_POINT_PRE_DIRECTION_FWD
1
Pre service translation
SOCK_XLATE_POINT_POST_DIRECTION_FWD
2
Post service translation
SOCK_XLATE_POINT_PRE_DIRECTION_REV
3
Pre reverse service translation
SOCK_XLATE_POINT_POST_DIRECTION_REV
4
Post reverse service translation
TraceObservationPoint
Name
Number
Description
UNKNOWN_POINT
0
Cilium treats 0 as TO_LXC, but its's something we should work to remove. This is intentionally set as unknown, so proto API can guarantee the observation point is always going to be present on trace events.
TO_PROXY
1
TO_PROXY indicates network packets are transmitted towards the l7 proxy.
TO_HOST
2
TO_HOST indicates network packets are transmitted towards the host namespace.
TO_STACK
3
TO_STACK indicates network packets are transmitted towards the Linux kernel network stack on host machine.
TO_OVERLAY
4
TO_OVERLAY indicates network packets are transmitted towards the tunnel device.
TO_ENDPOINT
101
TO_ENDPOINT indicates network packets are transmitted towards endpoints (containers).
FROM_ENDPOINT
5
FROM_ENDPOINT indicates network packets were received from endpoints (containers).
FROM_PROXY
6
FROM_PROXY indicates network packets were received from the l7 proxy.
FROM_HOST
7
FROM_HOST indicates network packets were received from the host namespace.
FROM_STACK
8
FROM_STACK indicates network packets were received from the Linux kernel network stack on host machine.
FROM_OVERLAY
9
FROM_OVERLAY indicates network packets were received from the tunnel device.
FROM_NETWORK
10
FROM_NETWORK indicates network packets were received from native devices.
TO_NETWORK
11
TO_NETWORK indicates network packets are transmitted towards native devices.
TraceReason
Name
Number
Description
TRACE_REASON_UNKNOWN
0
NEW
1
ESTABLISHED
2
REPLY
3
RELATED
4
REOPENED
5
SRV6_ENCAP
6
SRV6_DECAP
7
ENCRYPT_OVERLAY
8
TrafficDirection
Name
Number
Description
TRAFFIC_DIRECTION_UNKNOWN
0
INGRESS
1
EGRESS
2
Verdict
Name
Number
Description
VERDICT_UNKNOWN
0
UNKNOWN is used if there is no verdict for this flow event
FORWARDED
1
FORWARDED is used for flow events where the trace point has forwarded this packet or connection to the next processing entity.
DROPPED
2
DROPPED is used for flow events where the connection or packet has been dropped (e.g. due to a malformed packet, it being rejected by a network policy etc). The exact drop reason may be found in drop_reason_desc.
ERROR
3
ERROR is used for flow events where an error occurred during processing
AUDIT
4
AUDIT is used on policy verdict events in policy audit mode, to denominate flows that would have been dropped by policy if audit mode was turned off
REDIRECTED
5
REDIRECTED is used for flow events which have been redirected to the proxy
TRACED
6
TRACED is used for flow events which have been observed at a trace point, but no particular verdict has been reached yet
TRANSLATED
7
TRANSLATED is used for flow events where an address has been translated