난 그냥 컴파일 한 BPF 예제를 연결하는 데 실패하고 http://cilium.readthedocs.io/en/v0.10/bpf/ 설명로드하려했던 :커널 <code>tools/testing/selftests/bpf</code>에서 eBPF의 덩어리
이 커널 4.4.0-98와 우분투 16.04.3 LTS에서 발생% tc filter add dev enp0s1 ingress bpf \
object-file ./net-next.git/tools/testing/selftests/bpf/sockmap_parse_prog.o \
section sk_skb1 verbose
Program section 'sk_skb1' not found in ELF file!
Error fetching program/map!
, 패키지에서 설치된 llvm
및 clang
버전 3.8은 iproute2
이 github의 최신 패키지입니다.
일부 툴체인/커널 버전/기능이 일치하지 않습니다.
내가 뭘 잘못하고 있니?
의견에 감사드립니다. 최신 커널을 빌드하고 설치해야 할 것입니다.// TC-friendly bpf 예제를'sockmap_parse_prog.c' 대신 시도해야한다고 조언 해 주시겠습니까? – Mark
또는 최근 배포판이있는 VM을 설치할 수 있습니다. 예를 들어 우분투 17.04에 커널 4.8이 있다고 생각합니까? 샘플의 경우,'samples/bpf/parse_simple.c'을 실행함으로써 시작할 수 있습니다. 이것은 주어진 목적지 포트 번호로 UDP 패킷을 드롭하는 것처럼 보이는 아주 기본적인 프로그램입니다. 'tools/testing/selftests/bpf'에도 다른 샘플이 있습니다. 'TC_ACT_' 리턴 코드를 grep하여 tc 용으로 작성된 프로그램을 찾을 수 있습니다. – Qeole