github.com/cilium/cilium@v1.16.2/api/v1/flow/README.md (about)

     1  # Protocol Documentation
     2  <a name="top"></a>
     3  
     4  ## Table of Contents
     5  
     6  - [flow/flow.proto](#flow_flow-proto)
     7      - [AgentEvent](#flow-AgentEvent)
     8      - [AgentEventUnknown](#flow-AgentEventUnknown)
     9      - [CiliumEventType](#flow-CiliumEventType)
    10      - [DNS](#flow-DNS)
    11      - [DebugEvent](#flow-DebugEvent)
    12      - [Endpoint](#flow-Endpoint)
    13      - [EndpointRegenNotification](#flow-EndpointRegenNotification)
    14      - [EndpointUpdateNotification](#flow-EndpointUpdateNotification)
    15      - [Ethernet](#flow-Ethernet)
    16      - [EventTypeFilter](#flow-EventTypeFilter)
    17      - [Flow](#flow-Flow)
    18      - [FlowFilter](#flow-FlowFilter)
    19      - [FlowFilter.Experimental](#flow-FlowFilter-Experimental)
    20      - [HTTP](#flow-HTTP)
    21      - [HTTPHeader](#flow-HTTPHeader)
    22      - [ICMPv4](#flow-ICMPv4)
    23      - [ICMPv6](#flow-ICMPv6)
    24      - [IP](#flow-IP)
    25      - [IPCacheNotification](#flow-IPCacheNotification)
    26      - [Kafka](#flow-Kafka)
    27      - [Layer4](#flow-Layer4)
    28      - [Layer7](#flow-Layer7)
    29      - [LostEvent](#flow-LostEvent)
    30      - [NetworkInterface](#flow-NetworkInterface)
    31      - [Policy](#flow-Policy)
    32      - [PolicyUpdateNotification](#flow-PolicyUpdateNotification)
    33      - [SCTP](#flow-SCTP)
    34      - [Service](#flow-Service)
    35      - [ServiceDeleteNotification](#flow-ServiceDeleteNotification)
    36      - [ServiceUpsertNotification](#flow-ServiceUpsertNotification)
    37      - [ServiceUpsertNotificationAddr](#flow-ServiceUpsertNotificationAddr)
    38      - [TCP](#flow-TCP)
    39      - [TCPFlags](#flow-TCPFlags)
    40      - [TimeNotification](#flow-TimeNotification)
    41      - [TraceContext](#flow-TraceContext)
    42      - [TraceParent](#flow-TraceParent)
    43      - [UDP](#flow-UDP)
    44      - [Workload](#flow-Workload)
    45    
    46      - [AgentEventType](#flow-AgentEventType)
    47      - [AuthType](#flow-AuthType)
    48      - [DebugCapturePoint](#flow-DebugCapturePoint)
    49      - [DebugEventType](#flow-DebugEventType)
    50      - [DropReason](#flow-DropReason)
    51      - [EventType](#flow-EventType)
    52      - [FlowType](#flow-FlowType)
    53      - [IPVersion](#flow-IPVersion)
    54      - [L7FlowType](#flow-L7FlowType)
    55      - [LostEventSource](#flow-LostEventSource)
    56      - [SocketTranslationPoint](#flow-SocketTranslationPoint)
    57      - [TraceObservationPoint](#flow-TraceObservationPoint)
    58      - [TraceReason](#flow-TraceReason)
    59      - [TrafficDirection](#flow-TrafficDirection)
    60      - [Verdict](#flow-Verdict)
    61    
    62  - [Scalar Value Types](#scalar-value-types)
    63  
    64  
    65  
    66  <a name="flow_flow-proto"></a>
    67  <p align="right"><a href="#top">Top</a></p>
    68  
    69  ## flow/flow.proto
    70  
    71  
    72  
    73  <a name="flow-AgentEvent"></a>
    74  
    75  ### AgentEvent
    76  
    77  
    78  
    79  | Field | Type | Label | Description |
    80  | ----- | ---- | ----- | ----------- |
    81  | type | [AgentEventType](#flow-AgentEventType) |  |  |
    82  | unknown | [AgentEventUnknown](#flow-AgentEventUnknown) |  |  |
    83  | agent_start | [TimeNotification](#flow-TimeNotification) |  |  |
    84  | policy_update | [PolicyUpdateNotification](#flow-PolicyUpdateNotification) |  | used for POLICY_UPDATED and POLICY_DELETED |
    85  | endpoint_regenerate | [EndpointRegenNotification](#flow-EndpointRegenNotification) |  | used for ENDPOINT_REGENERATE_SUCCESS and ENDPOINT_REGENERATE_FAILURE |
    86  | endpoint_update | [EndpointUpdateNotification](#flow-EndpointUpdateNotification) |  | used for ENDPOINT_CREATED and ENDPOINT_DELETED |
    87  | ipcache_update | [IPCacheNotification](#flow-IPCacheNotification) |  | used for IPCACHE_UPSERTED and IPCACHE_DELETED |
    88  | service_upsert | [ServiceUpsertNotification](#flow-ServiceUpsertNotification) |  |  |
    89  | service_delete | [ServiceDeleteNotification](#flow-ServiceDeleteNotification) |  |  |
    90  
    91  
    92  
    93  
    94  
    95  
    96  <a name="flow-AgentEventUnknown"></a>
    97  
    98  ### AgentEventUnknown
    99  
   100  
   101  
   102  | Field | Type | Label | Description |
   103  | ----- | ---- | ----- | ----------- |
   104  | type | [string](#string) |  |  |
   105  | notification | [string](#string) |  |  |
   106  
   107  
   108  
   109  
   110  
   111  
   112  <a name="flow-CiliumEventType"></a>
   113  
   114  ### CiliumEventType
   115  CiliumEventType from which the flow originated.
   116  
   117  
   118  | Field | Type | Label | Description |
   119  | ----- | ---- | ----- | ----------- |
   120  | type | [int32](#int32) |  | type of event the flow originated from, i.e. github.com/cilium/cilium/pkg/monitor/api.MessageType* |
   121  | sub_type | [int32](#int32) |  | 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* |
   122  
   123  
   124  
   125  
   126  
   127  
   128  <a name="flow-DNS"></a>
   129  
   130  ### DNS
   131  DNS flow. This is basically directly mapped from Cilium&#39;s [LogRecordDNS](https://github.com/cilium/cilium/blob/04f3889d627774f79e56d14ddbc165b3169e2d01/pkg/proxy/accesslog/record.go#L264):
   132  
   133  
   134  | Field | Type | Label | Description |
   135  | ----- | ---- | ----- | ----------- |
   136  | query | [string](#string) |  | DNS name that&#39;s being looked up: e.g. &#34;isovalent.com.&#34; |
   137  | ips | [string](#string) | repeated | List of IP addresses in the DNS response. |
   138  | ttl | [uint32](#uint32) |  | TTL in the DNS response. |
   139  | cnames | [string](#string) | repeated | List of CNames in the DNS response. |
   140  | observation_source | [string](#string) |  | Corresponds to DNSDataSource defined in: https://github.com/cilium/cilium/blob/04f3889d627774f79e56d14ddbc165b3169e2d01/pkg/proxy/accesslog/record.go#L253 |
   141  | rcode | [uint32](#uint32) |  | Return code of the DNS request defined in: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6 |
   142  | qtypes | [string](#string) | repeated | String representation of qtypes defined in: https://tools.ietf.org/html/rfc1035#section-3.2.3 |
   143  | rrtypes | [string](#string) | repeated | String representation of rrtypes defined in: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 |
   144  
   145  
   146  
   147  
   148  
   149  
   150  <a name="flow-DebugEvent"></a>
   151  
   152  ### DebugEvent
   153  
   154  
   155  
   156  | Field | Type | Label | Description |
   157  | ----- | ---- | ----- | ----------- |
   158  | type | [DebugEventType](#flow-DebugEventType) |  |  |
   159  | source | [Endpoint](#flow-Endpoint) |  |  |
   160  | hash | [google.protobuf.UInt32Value](#google-protobuf-UInt32Value) |  |  |
   161  | arg1 | [google.protobuf.UInt32Value](#google-protobuf-UInt32Value) |  |  |
   162  | arg2 | [google.protobuf.UInt32Value](#google-protobuf-UInt32Value) |  |  |
   163  | arg3 | [google.protobuf.UInt32Value](#google-protobuf-UInt32Value) |  |  |
   164  | message | [string](#string) |  |  |
   165  | cpu | [google.protobuf.Int32Value](#google-protobuf-Int32Value) |  |  |
   166  
   167  
   168  
   169  
   170  
   171  
   172  <a name="flow-Endpoint"></a>
   173  
   174  ### Endpoint
   175  
   176  
   177  
   178  | Field | Type | Label | Description |
   179  | ----- | ---- | ----- | ----------- |
   180  | ID | [uint32](#uint32) |  |  |
   181  | identity | [uint32](#uint32) |  |  |
   182  | cluster_name | [string](#string) |  |  |
   183  | namespace | [string](#string) |  |  |
   184  | labels | [string](#string) | repeated | labels in `foo=bar` format. |
   185  | pod_name | [string](#string) |  |  |
   186  | workloads | [Workload](#flow-Workload) | repeated |  |
   187  
   188  
   189  
   190  
   191  
   192  
   193  <a name="flow-EndpointRegenNotification"></a>
   194  
   195  ### EndpointRegenNotification
   196  
   197  
   198  
   199  | Field | Type | Label | Description |
   200  | ----- | ---- | ----- | ----------- |
   201  | id | [uint64](#uint64) |  |  |
   202  | labels | [string](#string) | repeated |  |
   203  | error | [string](#string) |  |  |
   204  
   205  
   206  
   207  
   208  
   209  
   210  <a name="flow-EndpointUpdateNotification"></a>
   211  
   212  ### EndpointUpdateNotification
   213  
   214  
   215  
   216  | Field | Type | Label | Description |
   217  | ----- | ---- | ----- | ----------- |
   218  | id | [uint64](#uint64) |  |  |
   219  | labels | [string](#string) | repeated |  |
   220  | error | [string](#string) |  |  |
   221  | pod_name | [string](#string) |  |  |
   222  | namespace | [string](#string) |  |  |
   223  
   224  
   225  
   226  
   227  
   228  
   229  <a name="flow-Ethernet"></a>
   230  
   231  ### Ethernet
   232  
   233  
   234  
   235  | Field | Type | Label | Description |
   236  | ----- | ---- | ----- | ----------- |
   237  | source | [string](#string) |  |  |
   238  | destination | [string](#string) |  |  |
   239  
   240  
   241  
   242  
   243  
   244  
   245  <a name="flow-EventTypeFilter"></a>
   246  
   247  ### EventTypeFilter
   248  EventTypeFilter is a filter describing a particular event type.
   249  
   250  
   251  | Field | Type | Label | Description |
   252  | ----- | ---- | ----- | ----------- |
   253  | type | [int32](#int32) |  | type is the primary flow type as defined by: github.com/cilium/cilium/pkg/monitor/api.MessageType* |
   254  | match_sub_type | [bool](#bool) |  | match_sub_type is set to true when matching on the sub_type should be done. This flag is required as 0 is a valid sub_type. |
   255  | sub_type | [int32](#int32) |  | sub_type is the secondary type, e.g. - github.com/cilium/cilium/pkg/monitor/api.Trace* |
   256  
   257  
   258  
   259  
   260  
   261  
   262  <a name="flow-Flow"></a>
   263  
   264  ### Flow
   265  
   266  
   267  
   268  | Field | Type | Label | Description |
   269  | ----- | ---- | ----- | ----------- |
   270  | time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) |  |  |
   271  | uuid | [string](#string) |  | uuid is a universally unique identifier for this flow. |
   272  | verdict | [Verdict](#flow-Verdict) |  |  |
   273  | drop_reason | [uint32](#uint32) |  | **Deprecated.** only applicable to Verdict = DROPPED. deprecated in favor of drop_reason_desc. |
   274  | auth_type | [AuthType](#flow-AuthType) |  | auth_type is the authentication type specified for the flow in Cilium Network Policy. Only set on policy verdict events. |
   275  | ethernet | [Ethernet](#flow-Ethernet) |  | l2 |
   276  | IP | [IP](#flow-IP) |  | l3 |
   277  | l4 | [Layer4](#flow-Layer4) |  | l4 |
   278  | source | [Endpoint](#flow-Endpoint) |  |  |
   279  | destination | [Endpoint](#flow-Endpoint) |  |  |
   280  | Type | [FlowType](#flow-FlowType) |  |  |
   281  | node_name | [string](#string) |  | NodeName is the name of the node from which this Flow was captured. |
   282  | node_labels | [string](#string) | repeated | node labels in `foo=bar` format. |
   283  | source_names | [string](#string) | repeated | all names the source IP can have. |
   284  | destination_names | [string](#string) | repeated | all names the destination IP can have. |
   285  | l7 | [Layer7](#flow-Layer7) |  | L7 information. This field is set if and only if FlowType is L7. |
   286  | reply | [bool](#bool) |  | **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. |
   287  | event_type | [CiliumEventType](#flow-CiliumEventType) |  | EventType of the originating Cilium event |
   288  | source_service | [Service](#flow-Service) |  | source_service contains the service name of the source |
   289  | destination_service | [Service](#flow-Service) |  | destination_service contains the service name of the destination |
   290  | traffic_direction | [TrafficDirection](#flow-TrafficDirection) |  | traffic_direction of the connection, e.g. ingress or egress |
   291  | policy_match_type | [uint32](#uint32) |  | policy_match_type is only applicable to the cilium event type PolicyVerdict https://github.com/cilium/cilium/blob/e831859b5cc336c6d964a6d35bbd34d1840e21b9/pkg/monitor/datapath_policy.go#L50 |
   292  | trace_observation_point | [TraceObservationPoint](#flow-TraceObservationPoint) |  | Only applicable to cilium trace notifications, blank for other types. |
   293  | trace_reason | [TraceReason](#flow-TraceReason) |  | Cilium datapath trace reason info. |
   294  | drop_reason_desc | [DropReason](#flow-DropReason) |  | only applicable to Verdict = DROPPED. |
   295  | is_reply | [google.protobuf.BoolValue](#google-protobuf-BoolValue) |  | 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). |
   296  | debug_capture_point | [DebugCapturePoint](#flow-DebugCapturePoint) |  | Only applicable to cilium debug capture events, blank for other types |
   297  | interface | [NetworkInterface](#flow-NetworkInterface) |  | interface is the network interface on which this flow was observed |
   298  | proxy_port | [uint32](#uint32) |  | proxy_port indicates the port of the proxy to which the flow was forwarded |
   299  | trace_context | [TraceContext](#flow-TraceContext) |  | trace_context contains information about a trace related to the flow, if any. |
   300  | sock_xlate_point | [SocketTranslationPoint](#flow-SocketTranslationPoint) |  | sock_xlate_point is the socket translation point. Only applicable to TraceSock notifications, blank for other types |
   301  | socket_cookie | [uint64](#uint64) |  | socket_cookie is the Linux kernel socket cookie for this flow. Only applicable to TraceSock notifications, zero for other types |
   302  | cgroup_id | [uint64](#uint64) |  | cgroup_id of the process which emitted this event. Only applicable to TraceSock notifications, zero for other types |
   303  | Summary | [string](#string) |  | **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. |
   304  | extensions | [google.protobuf.Any](#google-protobuf-Any) |  | 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. |
   305  | egress_allowed_by | [Policy](#flow-Policy) | repeated | The CiliumNetworkPolicies allowing the egress of the flow. |
   306  | ingress_allowed_by | [Policy](#flow-Policy) | repeated | The CiliumNetworkPolicies allowing the ingress of the flow. |
   307  | egress_denied_by | [Policy](#flow-Policy) | repeated | The CiliumNetworkPolicies denying the egress of the flow. |
   308  | ingress_denied_by | [Policy](#flow-Policy) | repeated | The CiliumNetworkPolicies denying the ingress of the flow. |
   309  
   310  
   311  
   312  
   313  
   314  
   315  <a name="flow-FlowFilter"></a>
   316  
   317  ### FlowFilter
   318  FlowFilter represent an individual flow filter. All fields are optional. If
   319  multiple fields are set, then all fields must match for the filter to match.
   320  
   321  
   322  | Field | Type | Label | Description |
   323  | ----- | ---- | ----- | ----------- |
   324  | uuid | [string](#string) | repeated | uuid filters by a list of flow uuids. |
   325  | source_ip | [string](#string) | repeated | source_ip filters by a list of source ips. Each of the source ips can be specified as an exact match (e.g. &#34;1.1.1.1&#34;) or as a CIDR range (e.g. &#34;1.1.1.0/24&#34;). |
   326  | source_ip_xlated | [string](#string) | repeated | source_ip_xlated filters by a list IPs. Each of the IPs can be specified as an exact match (e.g. &#34;1.1.1.1&#34;) or as a CIDR range (e.g. &#34;1.1.1.0/24&#34;). |
   327  | source_pod | [string](#string) | repeated | source_pod filters by a list of source pod name prefixes, optionally within a given namespace (e.g. &#34;xwing&#34;, &#34;kube-system/coredns-&#34;). The pod name can be omitted to only filter by namespace (e.g. &#34;kube-system/&#34;) or the namespace can be omitted to filter for pods in any namespace (e.g. &#34;/xwing&#34;) |
   328  | source_fqdn | [string](#string) | repeated | source_fqdn filters by a list of source fully qualified domain names |
   329  | source_label | [string](#string) | repeated | source_labels filters on a list of source label selectors. Selectors support the full Kubernetes label selector syntax. |
   330  | source_service | [string](#string) | repeated | source_service filters on a list of source service names. This field supports the same syntax as the source_pod field. |
   331  | source_workload | [Workload](#flow-Workload) | repeated | source_workload filters by a list of source workload. |
   332  | destination_ip | [string](#string) | repeated | destination_ip filters by a list of destination ips. Each of the destination ips can be specified as an exact match (e.g. &#34;1.1.1.1&#34;) or as a CIDR range (e.g. &#34;1.1.1.0/24&#34;). |
   333  | destination_pod | [string](#string) | repeated | destination_pod filters by a list of destination pod names |
   334  | destination_fqdn | [string](#string) | repeated | destination_fqdn filters by a list of destination fully qualified domain names |
   335  | destination_label | [string](#string) | repeated | destination_label filters on a list of destination label selectors |
   336  | destination_service | [string](#string) | repeated | destination_service filters on a list of destination service names |
   337  | destination_workload | [Workload](#flow-Workload) | repeated | destination_workload filters by a list of destination workload. |
   338  | traffic_direction | [TrafficDirection](#flow-TrafficDirection) | repeated | traffic_direction filters flow by direction of the connection, e.g. ingress or egress. |
   339  | verdict | [Verdict](#flow-Verdict) | repeated | only return Flows that were classified with a particular verdict. |
   340  | drop_reason_desc | [DropReason](#flow-DropReason) | repeated | only applicable to Verdict = DROPPED (e.g. &#34;POLICY_DENIED&#34;, &#34;UNSUPPORTED_L3_PROTOCOL&#34;) |
   341  | interface | [NetworkInterface](#flow-NetworkInterface) | repeated | interface is the network interface on which this flow was observed. |
   342  | event_type | [EventTypeFilter](#flow-EventTypeFilter) | repeated | event_type is the list of event types to filter on |
   343  | http_status_code | [string](#string) | repeated | http_status_code is a list of string prefixes (e.g. &#34;4&#43;&#34;, &#34;404&#34;, &#34;5&#43;&#34;) to filter on the HTTP status code |
   344  | protocol | [string](#string) | repeated | protocol filters flows by L4 or L7 protocol, e.g. (e.g. &#34;tcp&#34;, &#34;http&#34;) |
   345  | source_port | [string](#string) | repeated | source_port filters flows by L4 source port |
   346  | destination_port | [string](#string) | repeated | destination_port filters flows by L4 destination port |
   347  | reply | [bool](#bool) | repeated | reply filters flows based on the direction of the flow. |
   348  | dns_query | [string](#string) | repeated | dns_query filters L7 DNS flows by query patterns (RE2 regex), e.g. &#39;kube.*local&#39;. |
   349  | source_identity | [uint32](#uint32) | repeated | source_identity filters by the security identity of the source endpoint. |
   350  | destination_identity | [uint32](#uint32) | repeated | destination_identity filters by the security identity of the destination endpoint. |
   351  | http_method | [string](#string) | repeated | GET, POST, PUT, etc. methods. This type of field is well suited for an enum but every single existing place is using a string already. |
   352  | http_path | [string](#string) | repeated | http_path is a list of regular expressions to filter on the HTTP path. |
   353  | http_url | [string](#string) | repeated | http_url is a list of regular expressions to filter on the HTTP URL. |
   354  | http_header | [HTTPHeader](#flow-HTTPHeader) | repeated | http_header is a list of key:value pairs to filter on the HTTP headers. |
   355  | tcp_flags | [TCPFlags](#flow-TCPFlags) | repeated | tcp_flags filters flows based on TCP header flags |
   356  | node_name | [string](#string) | repeated | node_name is a list of patterns to filter on the node name, e.g. &#34;k8s*&#34;, &#34;test-cluster/*.domain.com&#34;, &#34;cluster-name/&#34; etc. |
   357  | node_labels | [string](#string) | repeated | node_labels filters on a list of node label selectors. Selectors support the full Kubernetes label selector syntax. |
   358  | ip_version | [IPVersion](#flow-IPVersion) | repeated | filter based on IP version (ipv4 or ipv6) |
   359  | trace_id | [string](#string) | repeated | trace_id filters flows by trace ID |
   360  | experimental | [FlowFilter.Experimental](#flow-FlowFilter-Experimental) |  | experimental contains filters that are not stable yet. Support for experimental features is always optional and subject to change. |
   361  
   362  
   363  
   364  
   365  
   366  
   367  <a name="flow-FlowFilter-Experimental"></a>
   368  
   369  ### FlowFilter.Experimental
   370  Experimental contains filters that are not stable yet. Support for
   371  experimental features is always optional and subject to change.
   372  
   373  
   374  | Field | Type | Label | Description |
   375  | ----- | ---- | ----- | ----------- |
   376  | cel_expression | [string](#string) | repeated | 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. |
   377  
   378  
   379  
   380  
   381  
   382  
   383  <a name="flow-HTTP"></a>
   384  
   385  ### HTTP
   386  L7 information for HTTP flows. It corresponds to Cilium&#39;s [accesslog.LogRecordHTTP](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L206) type.
   387  
   388  
   389  | Field | Type | Label | Description |
   390  | ----- | ---- | ----- | ----------- |
   391  | code | [uint32](#uint32) |  |  |
   392  | method | [string](#string) |  |  |
   393  | url | [string](#string) |  |  |
   394  | protocol | [string](#string) |  |  |
   395  | headers | [HTTPHeader](#flow-HTTPHeader) | repeated |  |
   396  
   397  
   398  
   399  
   400  
   401  
   402  <a name="flow-HTTPHeader"></a>
   403  
   404  ### HTTPHeader
   405  
   406  
   407  
   408  | Field | Type | Label | Description |
   409  | ----- | ---- | ----- | ----------- |
   410  | key | [string](#string) |  |  |
   411  | value | [string](#string) |  |  |
   412  
   413  
   414  
   415  
   416  
   417  
   418  <a name="flow-ICMPv4"></a>
   419  
   420  ### ICMPv4
   421  
   422  
   423  
   424  | Field | Type | Label | Description |
   425  | ----- | ---- | ----- | ----------- |
   426  | type | [uint32](#uint32) |  |  |
   427  | code | [uint32](#uint32) |  |  |
   428  
   429  
   430  
   431  
   432  
   433  
   434  <a name="flow-ICMPv6"></a>
   435  
   436  ### ICMPv6
   437  
   438  
   439  
   440  | Field | Type | Label | Description |
   441  | ----- | ---- | ----- | ----------- |
   442  | type | [uint32](#uint32) |  |  |
   443  | code | [uint32](#uint32) |  |  |
   444  
   445  
   446  
   447  
   448  
   449  
   450  <a name="flow-IP"></a>
   451  
   452  ### IP
   453  
   454  
   455  
   456  | Field | Type | Label | Description |
   457  | ----- | ---- | ----- | ----------- |
   458  | source | [string](#string) |  |  |
   459  | source_xlated | [string](#string) |  | source_xlated is the post translation source IP when the flow was SNATed (and in that case source is the the original source IP). |
   460  | destination | [string](#string) |  |  |
   461  | ipVersion | [IPVersion](#flow-IPVersion) |  |  |
   462  | encrypted | [bool](#bool) |  | This field indicates whether the TraceReasonEncryptMask is set or not. https://github.com/cilium/cilium/blob/ba0ed147bd5bb342f67b1794c2ad13c6e99d5236/pkg/monitor/datapath_trace.go#L27 |
   463  
   464  
   465  
   466  
   467  
   468  
   469  <a name="flow-IPCacheNotification"></a>
   470  
   471  ### IPCacheNotification
   472  
   473  
   474  
   475  | Field | Type | Label | Description |
   476  | ----- | ---- | ----- | ----------- |
   477  | cidr | [string](#string) |  |  |
   478  | identity | [uint32](#uint32) |  |  |
   479  | old_identity | [google.protobuf.UInt32Value](#google-protobuf-UInt32Value) |  |  |
   480  | host_ip | [string](#string) |  |  |
   481  | old_host_ip | [string](#string) |  |  |
   482  | encrypt_key | [uint32](#uint32) |  |  |
   483  | namespace | [string](#string) |  |  |
   484  | pod_name | [string](#string) |  |  |
   485  
   486  
   487  
   488  
   489  
   490  
   491  <a name="flow-Kafka"></a>
   492  
   493  ### Kafka
   494  L7 information for Kafka flows. It corresponds to Cilium&#39;s [accesslog.LogRecordKafka](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L229) type.
   495  
   496  
   497  | Field | Type | Label | Description |
   498  | ----- | ---- | ----- | ----------- |
   499  | error_code | [int32](#int32) |  |  |
   500  | api_version | [int32](#int32) |  |  |
   501  | api_key | [string](#string) |  |  |
   502  | correlation_id | [int32](#int32) |  |  |
   503  | topic | [string](#string) |  |  |
   504  
   505  
   506  
   507  
   508  
   509  
   510  <a name="flow-Layer4"></a>
   511  
   512  ### Layer4
   513  
   514  
   515  
   516  | Field | Type | Label | Description |
   517  | ----- | ---- | ----- | ----------- |
   518  | TCP | [TCP](#flow-TCP) |  |  |
   519  | UDP | [UDP](#flow-UDP) |  |  |
   520  | ICMPv4 | [ICMPv4](#flow-ICMPv4) |  | ICMP is technically not L4, but mutually exclusive with the above |
   521  | ICMPv6 | [ICMPv6](#flow-ICMPv6) |  |  |
   522  | SCTP | [SCTP](#flow-SCTP) |  |  |
   523  
   524  
   525  
   526  
   527  
   528  
   529  <a name="flow-Layer7"></a>
   530  
   531  ### Layer7
   532  Message for L7 flow, which roughly corresponds to Cilium&#39;s accesslog [LogRecord](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L141):
   533  
   534  
   535  | Field | Type | Label | Description |
   536  | ----- | ---- | ----- | ----------- |
   537  | type | [L7FlowType](#flow-L7FlowType) |  |  |
   538  | latency_ns | [uint64](#uint64) |  | Latency of the response |
   539  | dns | [DNS](#flow-DNS) |  |  |
   540  | http | [HTTP](#flow-HTTP) |  |  |
   541  | kafka | [Kafka](#flow-Kafka) |  |  |
   542  
   543  
   544  
   545  
   546  
   547  
   548  <a name="flow-LostEvent"></a>
   549  
   550  ### LostEvent
   551  LostEvent is a message which notifies consumers about a loss of events
   552  that happened before the events were captured by Hubble.
   553  
   554  
   555  | Field | Type | Label | Description |
   556  | ----- | ---- | ----- | ----------- |
   557  | source | [LostEventSource](#flow-LostEventSource) |  | source is the location where events got lost. |
   558  | num_events_lost | [uint64](#uint64) |  | num_events_lost is the number of events that haven been lost at source. |
   559  | cpu | [google.protobuf.Int32Value](#google-protobuf-Int32Value) |  | cpu on which the event was lost if the source of lost events is PERF_EVENT_RING_BUFFER. |
   560  
   561  
   562  
   563  
   564  
   565  
   566  <a name="flow-NetworkInterface"></a>
   567  
   568  ### NetworkInterface
   569  
   570  
   571  
   572  | Field | Type | Label | Description |
   573  | ----- | ---- | ----- | ----------- |
   574  | index | [uint32](#uint32) |  |  |
   575  | name | [string](#string) |  |  |
   576  
   577  
   578  
   579  
   580  
   581  
   582  <a name="flow-Policy"></a>
   583  
   584  ### Policy
   585  
   586  
   587  
   588  | Field | Type | Label | Description |
   589  | ----- | ---- | ----- | ----------- |
   590  | name | [string](#string) |  |  |
   591  | namespace | [string](#string) |  |  |
   592  | labels | [string](#string) | repeated |  |
   593  | revision | [uint64](#uint64) |  |  |
   594  
   595  
   596  
   597  
   598  
   599  
   600  <a name="flow-PolicyUpdateNotification"></a>
   601  
   602  ### PolicyUpdateNotification
   603  
   604  
   605  
   606  | Field | Type | Label | Description |
   607  | ----- | ---- | ----- | ----------- |
   608  | labels | [string](#string) | repeated |  |
   609  | revision | [uint64](#uint64) |  |  |
   610  | rule_count | [int64](#int64) |  |  |
   611  
   612  
   613  
   614  
   615  
   616  
   617  <a name="flow-SCTP"></a>
   618  
   619  ### SCTP
   620  
   621  
   622  
   623  | Field | Type | Label | Description |
   624  | ----- | ---- | ----- | ----------- |
   625  | source_port | [uint32](#uint32) |  |  |
   626  | destination_port | [uint32](#uint32) |  |  |
   627  
   628  
   629  
   630  
   631  
   632  
   633  <a name="flow-Service"></a>
   634  
   635  ### Service
   636  
   637  
   638  
   639  | Field | Type | Label | Description |
   640  | ----- | ---- | ----- | ----------- |
   641  | name | [string](#string) |  |  |
   642  | namespace | [string](#string) |  |  |
   643  
   644  
   645  
   646  
   647  
   648  
   649  <a name="flow-ServiceDeleteNotification"></a>
   650  
   651  ### ServiceDeleteNotification
   652  
   653  
   654  
   655  | Field | Type | Label | Description |
   656  | ----- | ---- | ----- | ----------- |
   657  | id | [uint32](#uint32) |  |  |
   658  
   659  
   660  
   661  
   662  
   663  
   664  <a name="flow-ServiceUpsertNotification"></a>
   665  
   666  ### ServiceUpsertNotification
   667  
   668  
   669  
   670  | Field | Type | Label | Description |
   671  | ----- | ---- | ----- | ----------- |
   672  | id | [uint32](#uint32) |  |  |
   673  | frontend_address | [ServiceUpsertNotificationAddr](#flow-ServiceUpsertNotificationAddr) |  |  |
   674  | backend_addresses | [ServiceUpsertNotificationAddr](#flow-ServiceUpsertNotificationAddr) | repeated |  |
   675  | type | [string](#string) |  |  |
   676  | traffic_policy | [string](#string) |  | **Deprecated.**  |
   677  | name | [string](#string) |  |  |
   678  | namespace | [string](#string) |  |  |
   679  | ext_traffic_policy | [string](#string) |  |  |
   680  | int_traffic_policy | [string](#string) |  |  |
   681  
   682  
   683  
   684  
   685  
   686  
   687  <a name="flow-ServiceUpsertNotificationAddr"></a>
   688  
   689  ### ServiceUpsertNotificationAddr
   690  
   691  
   692  
   693  | Field | Type | Label | Description |
   694  | ----- | ---- | ----- | ----------- |
   695  | ip | [string](#string) |  |  |
   696  | port | [uint32](#uint32) |  |  |
   697  
   698  
   699  
   700  
   701  
   702  
   703  <a name="flow-TCP"></a>
   704  
   705  ### TCP
   706  
   707  
   708  
   709  | Field | Type | Label | Description |
   710  | ----- | ---- | ----- | ----------- |
   711  | source_port | [uint32](#uint32) |  |  |
   712  | destination_port | [uint32](#uint32) |  |  |
   713  | flags | [TCPFlags](#flow-TCPFlags) |  |  |
   714  
   715  
   716  
   717  
   718  
   719  
   720  <a name="flow-TCPFlags"></a>
   721  
   722  ### TCPFlags
   723  
   724  
   725  
   726  | Field | Type | Label | Description |
   727  | ----- | ---- | ----- | ----------- |
   728  | FIN | [bool](#bool) |  |  |
   729  | SYN | [bool](#bool) |  |  |
   730  | RST | [bool](#bool) |  |  |
   731  | PSH | [bool](#bool) |  |  |
   732  | ACK | [bool](#bool) |  |  |
   733  | URG | [bool](#bool) |  |  |
   734  | ECE | [bool](#bool) |  |  |
   735  | CWR | [bool](#bool) |  |  |
   736  | NS | [bool](#bool) |  |  |
   737  
   738  
   739  
   740  
   741  
   742  
   743  <a name="flow-TimeNotification"></a>
   744  
   745  ### TimeNotification
   746  
   747  
   748  
   749  | Field | Type | Label | Description |
   750  | ----- | ---- | ----- | ----------- |
   751  | time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) |  |  |
   752  
   753  
   754  
   755  
   756  
   757  
   758  <a name="flow-TraceContext"></a>
   759  
   760  ### TraceContext
   761  TraceContext contains trace context propagation data, i.e. information about a
   762  distributed trace.
   763  For more information about trace context, check the [W3C Trace Context specification](https://www.w3.org/TR/trace-context/).
   764  
   765  
   766  | Field | Type | Label | Description |
   767  | ----- | ---- | ----- | ----------- |
   768  | parent | [TraceParent](#flow-TraceParent) |  | parent identifies the incoming request in a tracing system. |
   769  
   770  
   771  
   772  
   773  
   774  
   775  <a name="flow-TraceParent"></a>
   776  
   777  ### TraceParent
   778  TraceParent identifies the incoming request in a tracing system.
   779  
   780  
   781  | Field | Type | Label | Description |
   782  | ----- | ---- | ----- | ----------- |
   783  | trace_id | [string](#string) |  | trace_id is a unique value that identifies a trace. It is a byte array represented as a hex string. |
   784  
   785  
   786  
   787  
   788  
   789  
   790  <a name="flow-UDP"></a>
   791  
   792  ### UDP
   793  
   794  
   795  
   796  | Field | Type | Label | Description |
   797  | ----- | ---- | ----- | ----------- |
   798  | source_port | [uint32](#uint32) |  |  |
   799  | destination_port | [uint32](#uint32) |  |  |
   800  
   801  
   802  
   803  
   804  
   805  
   806  <a name="flow-Workload"></a>
   807  
   808  ### Workload
   809  
   810  
   811  
   812  | Field | Type | Label | Description |
   813  | ----- | ---- | ----- | ----------- |
   814  | name | [string](#string) |  |  |
   815  | kind | [string](#string) |  |  |
   816  
   817  
   818  
   819  
   820  
   821   
   822  
   823  
   824  <a name="flow-AgentEventType"></a>
   825  
   826  ### AgentEventType
   827  AgentEventType is the type of agent event. These values are shared with type
   828  AgentNotification in pkg/monitor/api/types.go.
   829  
   830  | Name | Number | Description |
   831  | ---- | ------ | ----------- |
   832  | AGENT_EVENT_UNKNOWN | 0 |  |
   833  | AGENT_STARTED | 2 |  |
   834  | POLICY_UPDATED | 3 |  |
   835  | POLICY_DELETED | 4 |  |
   836  | ENDPOINT_REGENERATE_SUCCESS | 5 |  |
   837  | ENDPOINT_REGENERATE_FAILURE | 6 |  |
   838  | ENDPOINT_CREATED | 7 |  |
   839  | ENDPOINT_DELETED | 8 |  |
   840  | IPCACHE_UPSERTED | 9 |  |
   841  | IPCACHE_DELETED | 10 |  |
   842  | SERVICE_UPSERTED | 11 |  |
   843  | SERVICE_DELETED | 12 |  |
   844  
   845  
   846  
   847  <a name="flow-AuthType"></a>
   848  
   849  ### AuthType
   850  These types correspond to definitions in pkg/policy/l4.go.
   851  
   852  | Name | Number | Description |
   853  | ---- | ------ | ----------- |
   854  | DISABLED | 0 |  |
   855  | SPIRE | 1 |  |
   856  | TEST_ALWAYS_FAIL | 2 |  |
   857  
   858  
   859  
   860  <a name="flow-DebugCapturePoint"></a>
   861  
   862  ### DebugCapturePoint
   863  These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h.
   864  
   865  | Name | Number | Description |
   866  | ---- | ------ | ----------- |
   867  | DBG_CAPTURE_POINT_UNKNOWN | 0 |  |
   868  | DBG_CAPTURE_DELIVERY | 4 |  |
   869  | DBG_CAPTURE_FROM_LB | 5 |  |
   870  | DBG_CAPTURE_AFTER_V46 | 6 |  |
   871  | DBG_CAPTURE_AFTER_V64 | 7 |  |
   872  | DBG_CAPTURE_PROXY_PRE | 8 |  |
   873  | DBG_CAPTURE_PROXY_POST | 9 |  |
   874  | DBG_CAPTURE_SNAT_PRE | 10 |  |
   875  | DBG_CAPTURE_SNAT_POST | 11 |  |
   876  
   877  
   878  
   879  <a name="flow-DebugEventType"></a>
   880  
   881  ### DebugEventType
   882  These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h.
   883  
   884  | Name | Number | Description |
   885  | ---- | ------ | ----------- |
   886  | DBG_EVENT_UNKNOWN | 0 |  |
   887  | DBG_GENERIC | 1 |  |
   888  | DBG_LOCAL_DELIVERY | 2 |  |
   889  | DBG_ENCAP | 3 |  |
   890  | DBG_LXC_FOUND | 4 |  |
   891  | DBG_POLICY_DENIED | 5 |  |
   892  | DBG_CT_LOOKUP | 6 |  |
   893  | DBG_CT_LOOKUP_REV | 7 |  |
   894  | DBG_CT_MATCH | 8 |  |
   895  | DBG_CT_CREATED | 9 |  |
   896  | DBG_CT_CREATED2 | 10 |  |
   897  | DBG_ICMP6_HANDLE | 11 |  |
   898  | DBG_ICMP6_REQUEST | 12 |  |
   899  | DBG_ICMP6_NS | 13 |  |
   900  | DBG_ICMP6_TIME_EXCEEDED | 14 |  |
   901  | DBG_CT_VERDICT | 15 |  |
   902  | DBG_DECAP | 16 |  |
   903  | DBG_PORT_MAP | 17 |  |
   904  | DBG_ERROR_RET | 18 |  |
   905  | DBG_TO_HOST | 19 |  |
   906  | DBG_TO_STACK | 20 |  |
   907  | DBG_PKT_HASH | 21 |  |
   908  | DBG_LB6_LOOKUP_FRONTEND | 22 |  |
   909  | DBG_LB6_LOOKUP_FRONTEND_FAIL | 23 |  |
   910  | DBG_LB6_LOOKUP_BACKEND_SLOT | 24 |  |
   911  | DBG_LB6_LOOKUP_BACKEND_SLOT_SUCCESS | 25 |  |
   912  | DBG_LB6_LOOKUP_BACKEND_SLOT_V2_FAIL | 26 |  |
   913  | DBG_LB6_LOOKUP_BACKEND_FAIL | 27 |  |
   914  | DBG_LB6_REVERSE_NAT_LOOKUP | 28 |  |
   915  | DBG_LB6_REVERSE_NAT | 29 |  |
   916  | DBG_LB4_LOOKUP_FRONTEND | 30 |  |
   917  | DBG_LB4_LOOKUP_FRONTEND_FAIL | 31 |  |
   918  | DBG_LB4_LOOKUP_BACKEND_SLOT | 32 |  |
   919  | DBG_LB4_LOOKUP_BACKEND_SLOT_SUCCESS | 33 |  |
   920  | DBG_LB4_LOOKUP_BACKEND_SLOT_V2_FAIL | 34 |  |
   921  | DBG_LB4_LOOKUP_BACKEND_FAIL | 35 |  |
   922  | DBG_LB4_REVERSE_NAT_LOOKUP | 36 |  |
   923  | DBG_LB4_REVERSE_NAT | 37 |  |
   924  | DBG_LB4_LOOPBACK_SNAT | 38 |  |
   925  | DBG_LB4_LOOPBACK_SNAT_REV | 39 |  |
   926  | DBG_CT_LOOKUP4 | 40 |  |
   927  | DBG_RR_BACKEND_SLOT_SEL | 41 |  |
   928  | DBG_REV_PROXY_LOOKUP | 42 |  |
   929  | DBG_REV_PROXY_FOUND | 43 |  |
   930  | DBG_REV_PROXY_UPDATE | 44 |  |
   931  | DBG_L4_POLICY | 45 |  |
   932  | DBG_NETDEV_IN_CLUSTER | 46 |  |
   933  | DBG_NETDEV_ENCAP4 | 47 |  |
   934  | DBG_CT_LOOKUP4_1 | 48 |  |
   935  | DBG_CT_LOOKUP4_2 | 49 |  |
   936  | DBG_CT_CREATED4 | 50 |  |
   937  | DBG_CT_LOOKUP6_1 | 51 |  |
   938  | DBG_CT_LOOKUP6_2 | 52 |  |
   939  | DBG_CT_CREATED6 | 53 |  |
   940  | DBG_SKIP_PROXY | 54 |  |
   941  | DBG_L4_CREATE | 55 |  |
   942  | DBG_IP_ID_MAP_FAILED4 | 56 |  |
   943  | DBG_IP_ID_MAP_FAILED6 | 57 |  |
   944  | DBG_IP_ID_MAP_SUCCEED4 | 58 |  |
   945  | DBG_IP_ID_MAP_SUCCEED6 | 59 |  |
   946  | DBG_LB_STALE_CT | 60 |  |
   947  | DBG_INHERIT_IDENTITY | 61 |  |
   948  | DBG_SK_LOOKUP4 | 62 |  |
   949  | DBG_SK_LOOKUP6 | 63 |  |
   950  | DBG_SK_ASSIGN | 64 |  |
   951  | DBG_L7_LB | 65 |  |
   952  | DBG_SKIP_POLICY | 66 |  |
   953  
   954  
   955  
   956  <a name="flow-DropReason"></a>
   957  
   958  ### DropReason
   959  These values are shared with pkg/monitor/api/drop.go and bpf/lib/common.h.
   960  Note that non-drop reasons (i.e. values less than api.DropMin) are not used
   961  here.
   962  
   963  | Name | Number | Description |
   964  | ---- | ------ | ----------- |
   965  | DROP_REASON_UNKNOWN | 0 | non-drop reasons |
   966  | INVALID_SOURCE_MAC | 130 | drop reasons |
   967  | INVALID_DESTINATION_MAC | 131 |  |
   968  | INVALID_SOURCE_IP | 132 |  |
   969  | POLICY_DENIED | 133 |  |
   970  | INVALID_PACKET_DROPPED | 134 |  |
   971  | CT_TRUNCATED_OR_INVALID_HEADER | 135 |  |
   972  | CT_MISSING_TCP_ACK_FLAG | 136 |  |
   973  | CT_UNKNOWN_L4_PROTOCOL | 137 |  |
   974  | CT_CANNOT_CREATE_ENTRY_FROM_PACKET | 138 |  |
   975  | UNSUPPORTED_L3_PROTOCOL | 139 |  |
   976  | MISSED_TAIL_CALL | 140 |  |
   977  | ERROR_WRITING_TO_PACKET | 141 |  |
   978  | UNKNOWN_L4_PROTOCOL | 142 |  |
   979  | UNKNOWN_ICMPV4_CODE | 143 |  |
   980  | UNKNOWN_ICMPV4_TYPE | 144 |  |
   981  | UNKNOWN_ICMPV6_CODE | 145 |  |
   982  | UNKNOWN_ICMPV6_TYPE | 146 |  |
   983  | ERROR_RETRIEVING_TUNNEL_KEY | 147 |  |
   984  | ERROR_RETRIEVING_TUNNEL_OPTIONS | 148 |  |
   985  | INVALID_GENEVE_OPTION | 149 |  |
   986  | UNKNOWN_L3_TARGET_ADDRESS | 150 |  |
   987  | STALE_OR_UNROUTABLE_IP | 151 |  |
   988  | NO_MATCHING_LOCAL_CONTAINER_FOUND | 152 |  |
   989  | ERROR_WHILE_CORRECTING_L3_CHECKSUM | 153 |  |
   990  | ERROR_WHILE_CORRECTING_L4_CHECKSUM | 154 |  |
   991  | CT_MAP_INSERTION_FAILED | 155 |  |
   992  | INVALID_IPV6_EXTENSION_HEADER | 156 |  |
   993  | IP_FRAGMENTATION_NOT_SUPPORTED | 157 |  |
   994  | SERVICE_BACKEND_NOT_FOUND | 158 |  |
   995  | NO_TUNNEL_OR_ENCAPSULATION_ENDPOINT | 160 |  |
   996  | FAILED_TO_INSERT_INTO_PROXYMAP | 161 |  |
   997  | REACHED_EDT_RATE_LIMITING_DROP_HORIZON | 162 |  |
   998  | UNKNOWN_CONNECTION_TRACKING_STATE | 163 |  |
   999  | LOCAL_HOST_IS_UNREACHABLE | 164 |  |
  1000  | NO_CONFIGURATION_AVAILABLE_TO_PERFORM_POLICY_DECISION | 165 |  |
  1001  | UNSUPPORTED_L2_PROTOCOL | 166 |  |
  1002  | NO_MAPPING_FOR_NAT_MASQUERADE | 167 |  |
  1003  | UNSUPPORTED_PROTOCOL_FOR_NAT_MASQUERADE | 168 |  |
  1004  | FIB_LOOKUP_FAILED | 169 |  |
  1005  | ENCAPSULATION_TRAFFIC_IS_PROHIBITED | 170 |  |
  1006  | INVALID_IDENTITY | 171 |  |
  1007  | UNKNOWN_SENDER | 172 |  |
  1008  | NAT_NOT_NEEDED | 173 |  |
  1009  | IS_A_CLUSTERIP | 174 |  |
  1010  | FIRST_LOGICAL_DATAGRAM_FRAGMENT_NOT_FOUND | 175 |  |
  1011  | FORBIDDEN_ICMPV6_MESSAGE | 176 |  |
  1012  | DENIED_BY_LB_SRC_RANGE_CHECK | 177 |  |
  1013  | SOCKET_LOOKUP_FAILED | 178 |  |
  1014  | SOCKET_ASSIGN_FAILED | 179 |  |
  1015  | PROXY_REDIRECTION_NOT_SUPPORTED_FOR_PROTOCOL | 180 |  |
  1016  | POLICY_DENY | 181 |  |
  1017  | VLAN_FILTERED | 182 |  |
  1018  | INVALID_VNI | 183 |  |
  1019  | INVALID_TC_BUFFER | 184 |  |
  1020  | NO_SID | 185 |  |
  1021  | MISSING_SRV6_STATE | 186 |  |
  1022  | NAT46 | 187 |  |
  1023  | NAT64 | 188 |  |
  1024  | AUTH_REQUIRED | 189 |  |
  1025  | CT_NO_MAP_FOUND | 190 |  |
  1026  | SNAT_NO_MAP_FOUND | 191 |  |
  1027  | INVALID_CLUSTER_ID | 192 |  |
  1028  | UNSUPPORTED_PROTOCOL_FOR_DSR_ENCAP | 193 |  |
  1029  | NO_EGRESS_GATEWAY | 194 |  |
  1030  | UNENCRYPTED_TRAFFIC | 195 |  |
  1031  | TTL_EXCEEDED | 196 |  |
  1032  | NO_NODE_ID | 197 |  |
  1033  | DROP_RATE_LIMITED | 198 |  |
  1034  | IGMP_HANDLED | 199 |  |
  1035  | IGMP_SUBSCRIBED | 200 |  |
  1036  | MULTICAST_HANDLED | 201 |  |
  1037  | DROP_HOST_NOT_READY | 202 | A BPF program wants to tail call into bpf_host, but the host datapath hasn&#39;t been loaded yet. |
  1038  | DROP_EP_NOT_READY | 203 | A BPF program wants to tail call some endpoint&#39;s policy program in the POLICY_CALL_MAP, but the program is not available. |
  1039  | DROP_NO_EGRESS_IP | 204 | An Egress Gateway node matched a packet against an Egress Gateway policy that didn&#39;t select a valid Egress IP. |
  1040  
  1041  
  1042  
  1043  <a name="flow-EventType"></a>
  1044  
  1045  ### EventType
  1046  EventType are constants are based on the ones from &lt;linux/perf_event.h&gt;.
  1047  
  1048  | Name | Number | Description |
  1049  | ---- | ------ | ----------- |
  1050  | UNKNOWN | 0 |  |
  1051  | EventSample | 9 | EventSample is equivalent to PERF_RECORD_SAMPLE. |
  1052  | RecordLost | 2 | RecordLost is equivalent to PERF_RECORD_LOST. |
  1053  
  1054  
  1055  
  1056  <a name="flow-FlowType"></a>
  1057  
  1058  ### FlowType
  1059  
  1060  
  1061  | Name | Number | Description |
  1062  | ---- | ------ | ----------- |
  1063  | UNKNOWN_TYPE | 0 |  |
  1064  | L3_L4 | 1 | not sure about the underscore here, but `L34` also reads strange |
  1065  | L7 | 2 |  |
  1066  | SOCK | 3 |  |
  1067  
  1068  
  1069  
  1070  <a name="flow-IPVersion"></a>
  1071  
  1072  ### IPVersion
  1073  
  1074  
  1075  | Name | Number | Description |
  1076  | ---- | ------ | ----------- |
  1077  | IP_NOT_USED | 0 |  |
  1078  | IPv4 | 1 |  |
  1079  | IPv6 | 2 |  |
  1080  
  1081  
  1082  
  1083  <a name="flow-L7FlowType"></a>
  1084  
  1085  ### L7FlowType
  1086  This enum corresponds to Cilium&#39;s L7 accesslog [FlowType](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L26):
  1087  
  1088  | Name | Number | Description |
  1089  | ---- | ------ | ----------- |
  1090  | UNKNOWN_L7_TYPE | 0 |  |
  1091  | REQUEST | 1 |  |
  1092  | RESPONSE | 2 |  |
  1093  | SAMPLE | 3 |  |
  1094  
  1095  
  1096  
  1097  <a name="flow-LostEventSource"></a>
  1098  
  1099  ### LostEventSource
  1100  
  1101  
  1102  | Name | Number | Description |
  1103  | ---- | ------ | ----------- |
  1104  | UNKNOWN_LOST_EVENT_SOURCE | 0 |  |
  1105  | 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. |
  1106  | 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. |
  1107  | HUBBLE_RING_BUFFER | 3 | HUBBLE_RING_BUFFER indicates that the event was dropped because it could not be read from Hubble&#39;s ring buffer in time before being overwritten. |
  1108  
  1109  
  1110  
  1111  <a name="flow-SocketTranslationPoint"></a>
  1112  
  1113  ### SocketTranslationPoint
  1114  This mirrors enum xlate_point in bpf/lib/trace_sock.h
  1115  
  1116  | Name | Number | Description |
  1117  | ---- | ------ | ----------- |
  1118  | SOCK_XLATE_POINT_UNKNOWN | 0 |  |
  1119  | SOCK_XLATE_POINT_PRE_DIRECTION_FWD | 1 | Pre service translation |
  1120  | SOCK_XLATE_POINT_POST_DIRECTION_FWD | 2 | Post service translation |
  1121  | SOCK_XLATE_POINT_PRE_DIRECTION_REV | 3 | Pre reverse service translation |
  1122  | SOCK_XLATE_POINT_POST_DIRECTION_REV | 4 | Post reverse service translation |
  1123  
  1124  
  1125  
  1126  <a name="flow-TraceObservationPoint"></a>
  1127  
  1128  ### TraceObservationPoint
  1129  
  1130  
  1131  | Name | Number | Description |
  1132  | ---- | ------ | ----------- |
  1133  | UNKNOWN_POINT | 0 | Cilium treats 0 as TO_LXC, but its&#39;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. |
  1134  | TO_PROXY | 1 | TO_PROXY indicates network packets are transmitted towards the l7 proxy. |
  1135  | TO_HOST | 2 | TO_HOST indicates network packets are transmitted towards the host namespace. |
  1136  | TO_STACK | 3 | TO_STACK indicates network packets are transmitted towards the Linux kernel network stack on host machine. |
  1137  | TO_OVERLAY | 4 | TO_OVERLAY indicates network packets are transmitted towards the tunnel device. |
  1138  | TO_ENDPOINT | 101 | TO_ENDPOINT indicates network packets are transmitted towards endpoints (containers). |
  1139  | FROM_ENDPOINT | 5 | FROM_ENDPOINT indicates network packets were received from endpoints (containers). |
  1140  | FROM_PROXY | 6 | FROM_PROXY indicates network packets were received from the l7 proxy. |
  1141  | FROM_HOST | 7 | FROM_HOST indicates network packets were received from the host namespace. |
  1142  | FROM_STACK | 8 | FROM_STACK indicates network packets were received from the Linux kernel network stack on host machine. |
  1143  | FROM_OVERLAY | 9 | FROM_OVERLAY indicates network packets were received from the tunnel device. |
  1144  | FROM_NETWORK | 10 | FROM_NETWORK indicates network packets were received from native devices. |
  1145  | TO_NETWORK | 11 | TO_NETWORK indicates network packets are transmitted towards native devices. |
  1146  
  1147  
  1148  
  1149  <a name="flow-TraceReason"></a>
  1150  
  1151  ### TraceReason
  1152  
  1153  
  1154  | Name | Number | Description |
  1155  | ---- | ------ | ----------- |
  1156  | TRACE_REASON_UNKNOWN | 0 |  |
  1157  | NEW | 1 |  |
  1158  | ESTABLISHED | 2 |  |
  1159  | REPLY | 3 |  |
  1160  | RELATED | 4 |  |
  1161  | REOPENED | 5 |  |
  1162  | SRV6_ENCAP | 6 |  |
  1163  | SRV6_DECAP | 7 |  |
  1164  | ENCRYPT_OVERLAY | 8 |  |
  1165  
  1166  
  1167  
  1168  <a name="flow-TrafficDirection"></a>
  1169  
  1170  ### TrafficDirection
  1171  
  1172  
  1173  | Name | Number | Description |
  1174  | ---- | ------ | ----------- |
  1175  | TRAFFIC_DIRECTION_UNKNOWN | 0 |  |
  1176  | INGRESS | 1 |  |
  1177  | EGRESS | 2 |  |
  1178  
  1179  
  1180  
  1181  <a name="flow-Verdict"></a>
  1182  
  1183  ### Verdict
  1184  
  1185  
  1186  | Name | Number | Description |
  1187  | ---- | ------ | ----------- |
  1188  | VERDICT_UNKNOWN | 0 | UNKNOWN is used if there is no verdict for this flow event |
  1189  | FORWARDED | 1 | FORWARDED is used for flow events where the trace point has forwarded this packet or connection to the next processing entity. |
  1190  | 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. |
  1191  | ERROR | 3 | ERROR is used for flow events where an error occurred during processing |
  1192  | 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 |
  1193  | REDIRECTED | 5 | REDIRECTED is used for flow events which have been redirected to the proxy |
  1194  | TRACED | 6 | TRACED is used for flow events which have been observed at a trace point, but no particular verdict has been reached yet |
  1195  | TRANSLATED | 7 | TRANSLATED is used for flow events where an address has been translated |
  1196  
  1197  
  1198   
  1199  
  1200   
  1201  
  1202   
  1203  
  1204  
  1205  
  1206  ## Scalar Value Types
  1207  
  1208  | .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
  1209  | ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
  1210  | <a name="double" /> double |  | double | double | float | float64 | double | float | Float |
  1211  | <a name="float" /> float |  | float | float | float | float32 | float | float | Float |
  1212  | <a name="int32" /> int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
  1213  | <a name="int64" /> int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
  1214  | <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
  1215  | <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
  1216  | <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
  1217  | <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
  1218  | <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
  1219  | <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
  1220  | <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
  1221  | <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
  1222  | <a name="bool" /> bool |  | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
  1223  | <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
  1224  | <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |
  1225