diff options
author | Alexei Starovoitov <ast@plumgrid.com> | 2014-06-06 20:48:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-06-11 03:13:16 -0400 |
commit | df6d0f983a59c333bc2b0cb82b65441b34310cf7 (patch) | |
tree | 88702d7db2e6fc50e04876d8ea389b99d99d61c3 /lib | |
parent | e430f34ee5192c84bcabd3c79ab7e2388b5eec74 (diff) |
net: filter: fix nlattr and nlattr_nest BPF tests
- 'struct nlattr' must be 2 byte aligned
- provide big-endian input data for nlattr/nlattr_nest tests
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/test_bpf.c | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/lib/test_bpf.c b/lib/test_bpf.c index ea60ad8d5242..c579e0f58818 100644 --- a/lib/test_bpf.c +++ b/lib/test_bpf.c | |||
@@ -385,7 +385,7 @@ static struct bpf_test tests[] = { | |||
385 | { | 385 | { |
386 | "LD_NLATTR", | 386 | "LD_NLATTR", |
387 | .u.insns = { | 387 | .u.insns = { |
388 | BPF_STMT(BPF_LDX | BPF_IMM, 1), | 388 | BPF_STMT(BPF_LDX | BPF_IMM, 2), |
389 | BPF_STMT(BPF_MISC | BPF_TXA, 0), | 389 | BPF_STMT(BPF_MISC | BPF_TXA, 0), |
390 | BPF_STMT(BPF_LDX | BPF_IMM, 3), | 390 | BPF_STMT(BPF_LDX | BPF_IMM, 3), |
391 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 391 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
@@ -393,42 +393,50 @@ static struct bpf_test tests[] = { | |||
393 | BPF_STMT(BPF_RET | BPF_A, 0) | 393 | BPF_STMT(BPF_RET | BPF_A, 0) |
394 | }, | 394 | }, |
395 | CLASSIC, | 395 | CLASSIC, |
396 | { 0xff, 4, 0, 2, 0, 4, 0, 3, 0 }, | 396 | #ifdef __BIG_ENDIAN |
397 | { { 4, 0 }, { 20, 5 } }, | 397 | { 0xff, 0xff, 0, 4, 0, 2, 0, 4, 0, 3 }, |
398 | #else | ||
399 | { 0xff, 0xff, 4, 0, 2, 0, 4, 0, 3, 0 }, | ||
400 | #endif | ||
401 | { { 4, 0 }, { 20, 6 } }, | ||
398 | }, | 402 | }, |
399 | { | 403 | { |
400 | "LD_NLATTR_NEST", | 404 | "LD_NLATTR_NEST", |
401 | .u.insns = { | 405 | .u.insns = { |
402 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 406 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
403 | BPF_STMT(BPF_LDX | BPF_IMM, 3), | 407 | BPF_STMT(BPF_LDX | BPF_IMM, 3), |
404 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 408 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
405 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 409 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
406 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 410 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
407 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 411 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
408 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 412 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
409 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 413 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
410 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 414 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
411 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 415 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
412 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 416 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
413 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 417 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
414 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 418 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
415 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 419 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
416 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 420 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
417 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 421 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
418 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 422 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
419 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 423 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
420 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 424 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
421 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 425 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
422 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 426 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
423 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 427 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
424 | BPF_STMT(BPF_LD | BPF_IMM, 1), | 428 | BPF_STMT(BPF_LD | BPF_IMM, 2), |
425 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, | 429 | BPF_STMT(BPF_LD | BPF_W | BPF_ABS, |
426 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), | 430 | SKF_AD_OFF + SKF_AD_NLATTR_NEST), |
427 | BPF_STMT(BPF_RET | BPF_A, 0) | 431 | BPF_STMT(BPF_RET | BPF_A, 0) |
428 | }, | 432 | }, |
429 | CLASSIC, | 433 | CLASSIC, |
430 | { 0xff, 12, 0, 1, 0, 4, 0, 2, 0, 4, 0, 3, 0 }, | 434 | #ifdef __BIG_ENDIAN |
431 | { { 4, 0 }, { 20, 9 } }, | 435 | { 0xff, 0xff, 0, 12, 0, 1, 0, 4, 0, 2, 0, 4, 0, 3 }, |
436 | #else | ||
437 | { 0xff, 0xff, 12, 0, 1, 0, 4, 0, 2, 0, 4, 0, 3, 0 }, | ||
438 | #endif | ||
439 | { { 4, 0 }, { 20, 10 } }, | ||
432 | }, | 440 | }, |
433 | { | 441 | { |
434 | "LD_PAYLOAD_OFF", | 442 | "LD_PAYLOAD_OFF", |