pub enum Program {
Xdp(XdpProgram),
Tc(TcProgram),
Tracepoint(TracepointProgram),
Kprobe(KprobeProgram),
Uprobe(UprobeProgram),
Fentry(FentryProgram),
Fexit(FexitProgram),
Unsupported(ProgramData),
}Expand description
Program represents various types of eBPF programs that are
supported by bpfman.
Variants§
Xdp(XdpProgram)
An XDP (Express Data Path) program.
XDP programs are attached to network interfaces and can process packets at a very early stage in the network stack, providing high-performance packet processing.
Tc(TcProgram)
A TC (Traffic Control) program.
TC programs are used for controlling network traffic. They can be attached to various hooks in the Linux Traffic Control (tc) subsystem.
Tracepoint(TracepointProgram)
A Tracepoint program.
Tracepoint programs are used for tracing specific events in the kernel, providing insights into kernel behaviour and performance.
Kprobe(KprobeProgram)
A Kprobe (Kernel Probe) program.
Kprobe programs are used to dynamically trace and instrument kernel functions. They can be attached to almost any function in the kernel.
Uprobe(UprobeProgram)
A Uprobe (User-space Probe) program.
Uprobe programs are similar to Kprobe programs but are used to trace user-space applications. They can be attached to functions in user-space binaries.
Fentry(FentryProgram)
An Fentry (Function Entry) program.
Fentry programs are a type of BPF program that are attached to the entry points of functions, providing a mechanism to trace and instrument the beginning of function execution.
Fexit(FexitProgram)
An Fexit (Function Exit) program.
Fexit programs are a type of BPF program that are attached to the exit points of functions, providing a mechanism to trace and instrument the end of function execution.
Unsupported(ProgramData)
An unsupported BPF program type.
This variant is used to represent BPF programs that are not
supported by bpfman. It contains the raw ProgramData for the
unsupported program.
Implementations§
source§impl Program
impl Program
pub fn kind(&self) -> ProgramType
pub fn get_data(&self) -> &ProgramData
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Program
impl !RefUnwindSafe for Program
impl Send for Program
impl Sync for Program
impl Unpin for Program
impl !UnwindSafe for Program
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)