Skip to content

Commit bda9ba8

Browse files
authored
Merge pull request #320 from msherif1234/agent_crash
NETOBSERV-1473: fix ebpf program name for older kernel
2 parents 6281d81 + 93fd553 commit bda9ba8

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

pkg/ebpf/tracer.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -606,10 +606,16 @@ func kernelSpecificLoadAndAssign(oldKernel bool, spec *ebpf.CollectionSpec) (Bpf
606606
// Here we define another structure similar to the bpf2go created one but w/o the hooks that does not exist in older kernel
607607
// Note: if new hooks are added in the future we need to update the following structures manually
608608
type NewBpfPrograms struct {
609-
TcEgressFlowParse *ebpf.Program `ebpf:"egress_flow_parse"`
610-
TcIngressFlowParse *ebpf.Program `ebpf:"ingress_flow_parse"`
611-
TCPRcvFentry *ebpf.Program `ebpf:"tcp_rcv_fentry"`
612-
TCPRcvKprobe *ebpf.Program `ebpf:"tcp_rcv_kprobe"`
609+
TcEgressFlowParse *ebpf.Program `ebpf:"tc_egress_flow_parse"`
610+
TcIngressFlowParse *ebpf.Program `ebpf:"tc_ingress_flow_parse"`
611+
TcxEgressFlowParse *ebpf.Program `ebpf:"tcx_egress_flow_parse"`
612+
TcxIngressFlowParse *ebpf.Program `ebpf:"tcx_ingress_flow_parse"`
613+
TcEgressPcaParse *ebpf.Program `ebpf:"tc_egress_pca_parse"`
614+
TcIngressPcaParse *ebpf.Program `ebpf:"tc_ingress_pca_parse"`
615+
TcxEgressPcaParse *ebpf.Program `ebpf:"tcx_egress_pca_parse"`
616+
TcxIngressPcaParse *ebpf.Program `ebpf:"tcx_ingress_pca_parse"`
617+
TCPRcvFentry *ebpf.Program `ebpf:"tcp_rcv_fentry"`
618+
TCPRcvKprobe *ebpf.Program `ebpf:"tcp_rcv_kprobe"`
613619
}
614620
type NewBpfObjects struct {
615621
NewBpfPrograms
@@ -634,6 +640,12 @@ func kernelSpecificLoadAndAssign(oldKernel bool, spec *ebpf.CollectionSpec) (Bpf
634640
objects.AggregatedFlows = newObjects.AggregatedFlows
635641
objects.TcEgressFlowParse = newObjects.TcEgressFlowParse
636642
objects.TcIngressFlowParse = newObjects.TcIngressFlowParse
643+
objects.TcxEgressFlowParse = newObjects.TcxEgressFlowParse
644+
objects.TcxIngressFlowParse = newObjects.TcxIngressFlowParse
645+
objects.TcEgressPcaParse = newObjects.TcEgressPcaParse
646+
objects.TcIngressPcaParse = newObjects.TcIngressPcaParse
647+
objects.TcxEgressPcaParse = newObjects.TcxEgressPcaParse
648+
objects.TcxIngressPcaParse = newObjects.TcxIngressPcaParse
637649
objects.TcpRcvFentry = newObjects.TCPRcvFentry
638650
objects.TcpRcvKprobe = newObjects.TCPRcvKprobe
639651
objects.GlobalCounters = newObjects.GlobalCounters
@@ -873,7 +885,7 @@ func fetchEgressEvents(iface ifaces.Interface, ipvlan netlink.Link, parser *ebpf
873885
}
874886

875887
func (p *PacketFetcher) registerEgress(iface ifaces.Interface, ipvlan netlink.Link) error {
876-
egressFilter, err := fetchEgressEvents(iface, ipvlan, p.objects.TcEgressPcaParse, "egress_pca_parse")
888+
egressFilter, err := fetchEgressEvents(iface, ipvlan, p.objects.TcEgressPcaParse, "tc_egress_pca_parse")
877889
if err != nil {
878890
return err
879891
}
@@ -912,7 +924,7 @@ func fetchIngressEvents(iface ifaces.Interface, ipvlan netlink.Link, parser *ebp
912924
}
913925

914926
func (p *PacketFetcher) registerIngress(iface ifaces.Interface, ipvlan netlink.Link) error {
915-
ingressFilter, err := fetchIngressEvents(iface, ipvlan, p.objects.TcIngressPcaParse, "ingress_pca_parse")
927+
ingressFilter, err := fetchIngressEvents(iface, ipvlan, p.objects.TcIngressPcaParse, "tc_ingress_pca_parse")
916928
if err != nil {
917929
return err
918930
}

0 commit comments

Comments
 (0)