From 35b97f1b15dd9023ed8d33165eeccb4cfe6740b0 Mon Sep 17 00:00:00 2001 From: Joongi Kim Date: Sun, 28 Feb 2016 21:37:07 +0900 Subject: [PATCH] refs #27: Add stub for IPsec unit test suite. --- elements/ipsec/IPsecAES_kernel.hh | 8 ----- elements/ipsec/IPsecAuthHMACSHA1_kernel.hh | 6 ---- elements/ipsec/IPsecESPencap.cc | 10 ++++-- tests/test_ipsec.cc | 38 ++++++++++++++++++++++ tests/test_ipv4route.cc | 9 +++-- 5 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 tests/test_ipsec.cc diff --git a/elements/ipsec/IPsecAES_kernel.hh b/elements/ipsec/IPsecAES_kernel.hh index 759038f..5bb2669 100644 --- a/elements/ipsec/IPsecAES_kernel.hh +++ b/elements/ipsec/IPsecAES_kernel.hh @@ -3,19 +3,11 @@ #include #include - #include "util_sa_entry.hh" namespace nba { -enum { - CUDA_THREADS_PER_AES_BLK = 256, - MAX_ALIGNMENT_SIZE = 64, - IP_ALIGNMENT_SIZE = 2 // Adjust start offset of ip header by shifting 2byte -}; extern void *ipsec_aes_encryption_get_cuda_kernel(); -//#define PER_PKT_INFO - } #endif /* __NBA_ELEMENT_IPSEC_IPSECAES_KERNEL_HH__ */ diff --git a/elements/ipsec/IPsecAuthHMACSHA1_kernel.hh b/elements/ipsec/IPsecAuthHMACSHA1_kernel.hh index bb6cea0..9d0ef65 100644 --- a/elements/ipsec/IPsecAuthHMACSHA1_kernel.hh +++ b/elements/ipsec/IPsecAuthHMACSHA1_kernel.hh @@ -10,12 +10,6 @@ //----- not used in NBA currently. copied from the old NBA. namespace nba { -enum { - CUDA_THREADS_PER_HSHA1_BLK = 32, - IP_ALIGNMENT_SIZE = 2 // Adjust start offset of ip header by shifting 2byte -}; -//----- - extern void *ipsec_hsha1_encryption_get_cuda_kernel(); } diff --git a/elements/ipsec/IPsecESPencap.cc b/elements/ipsec/IPsecESPencap.cc index f7aaa48..e7bcc2c 100644 --- a/elements/ipsec/IPsecESPencap.cc +++ b/elements/ipsec/IPsecESPencap.cc @@ -78,12 +78,16 @@ int IPsecESPencap::process(int input_port, Packet *pkt) if (likely(sa_item != sa_table.end())) { sa_entry = sa_item->second; anno_set(&pkt->anno, NBA_ANNO_IPSEC_FLOW_ID, sa_entry->entry_idx); + assert(sa_entry->entry_idx < 1024u); } else { + pkt->kill(); + return 0; // FIXME: this is to encrypt all traffic regardless sa_entry lookup results. // (just for worst-case performance tests) - unsigned f = (tunnel_counter ++) % num_tunnels; - sa_entry = sa_table_linear[f]; - anno_set(&pkt->anno, NBA_ANNO_IPSEC_FLOW_ID, f); + //unsigned f = (tunnel_counter ++) % num_tunnels; + //sa_entry = sa_table_linear[f]; + //anno_set(&pkt->anno, NBA_ANNO_IPSEC_FLOW_ID, f); + //assert(f < 1024u); } int ip_len = ntohs(iph->tot_len); diff --git a/tests/test_ipsec.cc b/tests/test_ipsec.cc new file mode 100644 index 0000000..1592d0d --- /dev/null +++ b/tests/test_ipsec.cc @@ -0,0 +1,38 @@ +#include +#include +#include +#ifdef USE_CUDA +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../elements/ipsec/util_esp.hh" +#include "../elements/ipsec/util_ipsec_key.hh" +#include "../elements/ipsec/util_sa_entry.hh" +#include "../elements/ipsec/IPsecAES_kernel.hh" +#include "../elements/ipsec/IPsecAuthHMACSHA1_kernel.hh" +#include "../elements/ipsec/IPsecDatablocks.hh" +#if 0 +#require +#require +#require "../elements/ipsec/IPsecAES_kernel.o" +#require "../elements/ipsec/IPsecAuthHMACSHA1_kernel.o" +#require "../elements/ipsec/IPsecDatablocks.o" +#endif + +using namespace std; +using namespace nba; + +TEST(IPsecTest, Loading) { + EXPECT_TRUE(1); +} + +// vim: ts=8 sts=4 sw=4 et diff --git a/tests/test_ipv4route.cc b/tests/test_ipv4route.cc index 1a0e02a..b715b83 100644 --- a/tests/test_ipv4route.cc +++ b/tests/test_ipv4route.cc @@ -387,11 +387,10 @@ TEST_P(IPLookupCUDAMatchTest, SingleBatchWithDatablock) { // We skip postprocessing since it has no actual elements here. batch->tracker.has_results = true; - - EXPECT_NE(0, output_buffer[0]); - EXPECT_NE(0, output_buffer[1]); - EXPECT_EQ(cpu_results[0], output_buffer[0]); - EXPECT_EQ(cpu_results[1], output_buffer[1]); + for (unsigned o = 0; o < out_count; o++) { + EXPECT_NE(0, output_buffer[o]); + EXPECT_EQ(cpu_results[o], output_buffer[o]); + } free(datablocks[0]); free(datablocks[1]);