NetworkFlowEvent

Struct NetworkFlowEvent 

Source
#[repr(C)]
pub struct NetworkFlowEvent { pub timestamp_ns: u64, pub cgroup_id: u64, pub src_ip: u32, pub dst_ip: u32, pub src_port: u16, pub dst_port: u16, pub protocol: u8, pub direction: u8, pub packet_len: u16, }
Expand description

Network flow event with full 5-tuple and container identification

Layout (32 bytes total, 8-byte aligned):

  • timestamp_ns: Kernel timestamp in nanoseconds
  • cgroup_id: Container cgroup ID for pod correlation (0 for TC classifiers)
  • src_ip: Source IPv4 address (first octet in LSB, as read from TC classifier)
  • dst_ip: Destination IPv4 address (first octet in LSB, as read from TC classifier)
  • src_port: Source port (host byte order)
  • dst_port: Destination port (host byte order)
  • protocol: IP protocol (6=TCP, 17=UDP, 1=ICMP)
  • direction: Traffic direction (0=ingress, 1=egress)
  • packet_len: Packet size in bytes

Note: IP addresses are stored with first octet in LSB position. For example, 10.0.0.5 is stored as 0x0500000A. Use from_le_bytes when parsing IP strings.

Fields§

§timestamp_ns: u64§cgroup_id: u64§src_ip: u32§dst_ip: u32§src_port: u16§dst_port: u16§protocol: u8§direction: u8§packet_len: u16

Trait Implementations§

Source§

impl Clone for NetworkFlowEvent

Source§

fn clone(&self) -> NetworkFlowEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NetworkFlowEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for NetworkFlowEvent

Source§

fn eq(&self, other: &NetworkFlowEvent) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for NetworkFlowEvent

Source§

impl Eq for NetworkFlowEvent

Source§

impl StructuralPartialEq for NetworkFlowEvent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.