X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_cryptodev_security_pdcp.c;h=30f3eb892c51c3b331abfe35dbfc7d9045e6184a;hb=03a0ed1a5935ab682554f52bff87b3c4a8c4b5df;hp=803fc1dfc5e59224475e3b2ec940ca67c9d71647;hpb=77371fe7ca8748f7aa74a62796e7432dae96aabc;p=dpdk.git diff --git a/app/test/test_cryptodev_security_pdcp.c b/app/test/test_cryptodev_security_pdcp.c index 803fc1dfc5..30f3eb892c 100644 --- a/app/test/test_cryptodev_security_pdcp.c +++ b/app/test/test_cryptodev_security_pdcp.c @@ -73,6 +73,109 @@ cplane_decap(uint32_t sn_size, uint8_t dir, return test_pdcp_proto_cplane_decap(i); } +static int uplane_encap_no_integrity(uint32_t sn_size, uint8_t dir, + enum enc_alg_off enc_alg_off) +{ + int i = PDCP_UPLANE_OFFSET + ((dir == 0) ? UPLINK : DOWNLINK) + + enc_alg_off; + + switch (sn_size) { + case 7: + i += SHORT_SEQ_NUM_OFFSET; + break; + case 15: + i += FIFTEEN_BIT_SEQ_NUM_OFFSET; + break; + case 12: + i += LONG_SEQ_NUM_OFFSET; + break; + case 18: + i += EIGHTEEN_BIT_SEQ_NUM_OFFSET; + break; + default: + printf("\nInvalid SN: %u\n", sn_size); + } + + return test_pdcp_proto_uplane_encap(i); +} + +static int +uplane_decap_no_integrity(uint32_t sn_size, uint8_t dir, + enum enc_alg_off enc_alg_off) +{ + int i = PDCP_UPLANE_OFFSET + ((dir == 0) ? UPLINK : DOWNLINK) + + enc_alg_off; + + switch (sn_size) { + case 7: + i += SHORT_SEQ_NUM_OFFSET; + break; + case 15: + i += FIFTEEN_BIT_SEQ_NUM_OFFSET; + break; + case 12: + i += LONG_SEQ_NUM_OFFSET; + break; + case 18: + i += EIGHTEEN_BIT_SEQ_NUM_OFFSET; + break; + default: + printf("\nInvalid SN: %u\n", sn_size); + } + + return test_pdcp_proto_uplane_decap(i); +} + +static int +uplane_encap_with_integrity(uint32_t sn_size, uint8_t dir, + enum enc_alg_off enc_alg_off, + enum auth_alg_off auth_alg_off) +{ + int i = 0; + + switch (sn_size) { + case 12: + i = PDCP_UPLANE_12BIT_OFFSET + enc_alg_off + + auth_alg_off + ((dir == 0) ? + UPLINK : DOWNLINK); + break; + case 18: + i = PDCP_UPLANE_18BIT_OFFSET + enc_alg_off + + auth_alg_off + ((dir == 0) ? + UPLINK : DOWNLINK); + break; + default: + printf("\nInvalid SN: %u\n", sn_size); + } + + return test_pdcp_proto_uplane_encap_with_int(i); +} + +static int +uplane_decap_with_integrity(uint32_t sn_size, uint8_t dir, + enum enc_alg_off enc_alg_off, + enum auth_alg_off auth_alg_off) +{ + int i = 0; + + switch (sn_size) { + case 12: + i = PDCP_UPLANE_12BIT_OFFSET + enc_alg_off + + auth_alg_off + ((dir == 0) ? + UPLINK : DOWNLINK); + break; + case 18: + i = PDCP_UPLANE_18BIT_OFFSET + enc_alg_off + + auth_alg_off + ((dir == 0) ? + UPLINK : DOWNLINK); + break; + default: + printf("\nInvalid SN: %u\n", sn_size); + } + + return test_pdcp_proto_uplane_decap_with_int(i); +} + #define TEST_PDCP_COUNT(func) do { \ if (func == TEST_SUCCESS) { \ printf("\t%d)", n++); \ @@ -243,3 +346,245 @@ test_PDCP_PROTO_cplane_decap_all(void) return n - i; }; + +int +test_PDCP_PROTO_uplane_encap_all(void) +{ + int i = 0, n = 0; + + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, DOWNLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, DOWNLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, DOWNLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, DOWNLINK, NULL_ENC)); + + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, DOWNLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, DOWNLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, DOWNLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, DOWNLINK, SNOW_ENC)); + + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, DOWNLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, DOWNLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, DOWNLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, DOWNLINK, AES_ENC)); + + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(12, DOWNLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(7, DOWNLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(15, DOWNLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_encap_no_integrity(18, DOWNLINK, ZUC_ENC)); + + /* For 12-bit SN with integrity */ + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, NULL_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, NULL_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, SNOW_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, SNOW_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, AES_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, AES_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, UPLINK, ZUC_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(12, DOWNLINK, ZUC_ENC, ZUC_AUTH)); + + /* For 18-bit SN with integrity */ + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, NULL_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, NULL_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, SNOW_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, SNOW_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, AES_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, AES_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, UPLINK, ZUC_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_encap_with_integrity(18, DOWNLINK, ZUC_ENC, ZUC_AUTH)); + + if (n - i) + printf("## %s: %d passed out of %d\n", __func__, i, n); + + return n - i; +}; + +int +test_PDCP_PROTO_uplane_decap_all(void) +{ + int i = 0, n = 0; + + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, DOWNLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, DOWNLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, DOWNLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, UPLINK, NULL_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, DOWNLINK, NULL_ENC)); + + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, DOWNLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, DOWNLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, DOWNLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, UPLINK, SNOW_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, DOWNLINK, SNOW_ENC)); + + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, DOWNLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, DOWNLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, DOWNLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, UPLINK, AES_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, DOWNLINK, AES_ENC)); + + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(12, DOWNLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(7, DOWNLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(15, DOWNLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, UPLINK, ZUC_ENC)); + TEST_PDCP_COUNT(uplane_decap_no_integrity(18, DOWNLINK, ZUC_ENC)); + + /* u-plane 12-bit with integrity */ + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, NULL_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, NULL_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, SNOW_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, SNOW_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, AES_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, AES_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, UPLINK, ZUC_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(12, DOWNLINK, ZUC_ENC, ZUC_AUTH)); + + /* u-plane 18-bit with integrity */ + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, NULL_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, NULL_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, NULL_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, NULL_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, NULL_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, SNOW_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, SNOW_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, SNOW_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, SNOW_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, SNOW_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, AES_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, AES_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, AES_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, AES_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, AES_ENC, ZUC_AUTH)); + + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, ZUC_ENC, NULL_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, ZUC_ENC, SNOW_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, ZUC_ENC, AES_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, UPLINK, ZUC_ENC, ZUC_AUTH)); + TEST_PDCP_COUNT(uplane_decap_with_integrity(18, DOWNLINK, ZUC_ENC, ZUC_AUTH)); + + if (n - i) + printf("## %s: %d passed out of %d\n", __func__, i, n); + + return n - i; +};