diff --git a/features/version.go b/features/version.go new file mode 100644 index 000000000..69e1c39c1 --- /dev/null +++ b/features/version.go @@ -0,0 +1,18 @@ +package features + +import "github.com/cilium/ebpf/internal" + +// LinuxVersionCode returns the version of the currently running kernel +// as defined in the LINUX_VERSION_CODE compile-time macro. It is represented +// in the format described by the KERNEL_VERSION macro from linux/version.h. +// +// Do not use the version to make assumptions about the presence of certain +// kernel features, always prefer feature probes in this package. Some +// distributions backport or disable eBPF features. +func LinuxVersionCode() (uint32, error) { + v, err := internal.KernelVersion() + if err != nil { + return 0, err + } + return v.Kernel(), nil +}