Hi Jiong,
   I didn't succeed to generate .i file using bcc, but since severals days I 
try to rewrite my code without bcc. (directly with bpf C api / clang / iproute2)

   I didn't finished yet, but I have a reduced version compared to the one I 
written for bcc and I face the same issue, so this time I can get .i file 
easily.

   So the .i file is as attachment.
   The corresponding code is available here : 
https://github.com/sbernard31/udploadbalancer/blob/44fe1ea549a55ab23c7d1b70e9651df6f61fb865/ulb.c

   The error is still math between pkt pointer and register with unbounded min 
value is not allowed

   The verifier output is pretty much the same :

27: (71) r4 = *(u8 *)(r1 +23) 28: (b7) r0 = 2 29: (55) if r4 != 0x11 goto pc+15 
R0=inv2 R1=pkt(id=0,off=0,r=34,imm=0) R2=pkt_end(id=0,off=0,imm=0) 
R3=pkt(id=0,off=34,r=34,imm=0) R4=inv17 R5=inv5 R10=fp0,call_-1 30: (07) r3 += 
8 31: (b7) r0 = 1 32: (2d) if r3 > r2 goto pc+12 R0=inv1 
R1=pkt(id=0,off=0,r=42,imm=0) R2=pkt_end(id=0,off=0,imm=0) 
R3=pkt(id=0,off=42,r=42,imm=0) R4=inv17 R5=inv5 R10=fp0,call_-1 33: (69) r3 = 
*(u16 *)(r1 +38) 34: (dc) r3 = be16 r3 35: (bf) r4 = r3 36: (07) r4 += -8 37: 
(57) r4 &= 65535 38: (b7) r0 = 1 39: (25) if r4 > 0x1f8 goto pc+5 R0=inv1 
R1=pkt(id=0,off=0,r=42,imm=0) R2=pkt_end(id=0,off=0,imm=0) R3=inv(id=0) 
R4=inv(id=0,umax_value=504,var_off=(0x0; 0x1ff)) R5=inv5 R10=fp0,call_-1 40: 
(0f) r1 += r3 math between pkt pointer and register with unbounded min value is 
not allowed

I'm pretty sure the bcc version I used before linked statically clang/llvm v7.0.
Here I use a v6.0.

The funny part ...  This modification about just adding some logs/printk makes 
this error disappear : 
https://github.com/sbernard31/udploadbalancer/commit/0145538c7b35e2a6bb92225f69a45f4bee120a6d

All of those erifier errors make me a bit crazy (╥_╥)

HTH

Simon

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#1627): https://lists.iovisor.org/g/iovisor-dev/message/1627
Mute This Topic: https://lists.iovisor.org/mt/30285987/21656
Mute #verifier: https://lists.iovisor.org/mk?hashtag=verifier&subid=2590197
Group Owner: [email protected]
Unsubscribe: https://lists.iovisor.org/g/iovisor-dev/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Attachment: ulb.i
Description: Binary data

Reply via email to