Ver código fonte

Add a private_routing flag to select which kind of routing to do

Ian Goldberg 1 ano atrás
pai
commit
0544a3e339

+ 2 - 1
App/appconfig.cpp

@@ -160,7 +160,8 @@ bool config_parse(Config &config, const std::string configstr,
         apinodeconfigs[i].weight = config.nodes[i].weight;
         apinodeconfigs[i].roles = config.nodes[i].roles;
     }
-    ret &= ecall_config_load(nthreads, &apiparams,
+    bool private_routing = true;
+    ret &= ecall_config_load(nthreads, private_routing, &apiparams,
         apinodeconfigs.data(), num_nodes, config.my_node_num);
     if (!ret) {
         std::cerr << "Loading config into enclave failed\n";

+ 1 - 0
Enclave/Enclave.edl

@@ -18,6 +18,7 @@ enclave {
 
         public bool ecall_config_load(
             threadid_t nthreads,
+            bool private_routing,
             [in] struct EnclaveAPIParams *apiparams,
             [in,count=num_nodes] struct EnclaveAPINodeConfig *apinodeconfigs,
             nodenum_t num_nodes, nodenum_t my_node_num);

+ 2 - 1
Enclave/config.cpp

@@ -5,7 +5,7 @@
 
 Config g_teems_config;
 
-bool ecall_config_load(threadid_t nthreads,
+bool ecall_config_load(threadid_t nthreads, bool private_routing,
     EnclaveAPIParams *apiparams,
     EnclaveAPINodeConfig *apinodeconfigs,
     nodenum_t num_nodes, nodenum_t my_node_num)
@@ -22,6 +22,7 @@ bool ecall_config_load(threadid_t nthreads,
     g_teems_config.m_priv_in = apiparams->m_priv_in;
     g_teems_config.m_pub_out = apiparams->m_pub_out;
     g_teems_config.m_pub_in = apiparams->m_pub_in;
+    g_teems_config.private_routing = private_routing;
     // Temporary vectors to store node numbers for nodes of different
     // types, where the node numbers are smaller than our own node
     // number

+ 1 - 0
Enclave/config.hpp

@@ -27,6 +27,7 @@ struct Config {
     uint8_t m_priv_in;
     uint8_t m_pub_out;
     uint8_t m_pub_in;
+    bool private_routing;
     std::vector<NodeWeight> weights;
     std::vector<nodenum_t> ingestion_nodes;
     std::vector<nodenum_t> routing_nodes;

+ 3 - 2
Untrusted/Untrusted.cpp

@@ -226,13 +226,14 @@ bool ecall_identity_key_load(sgx_ec256_public_t* outpub,
 }
 
 bool ecall_config_load(threadid_t nthreads,
+    bool private_routing,
     struct EnclaveAPIParams *apiparams,
     struct EnclaveAPINodeConfig *apinodeconfigs,
     nodenum_t num_nodes, nodenum_t my_node_num)
 {
     bool ret;
-    ecall_config_load(global_eid, &ret, nthreads, apiparams,
-        apinodeconfigs, num_nodes, my_node_num);
+    ecall_config_load(global_eid, &ret, nthreads, private_routing,
+        apiparams, apinodeconfigs, num_nodes, my_node_num);
     return ret;
 }
 

+ 1 - 0
Untrusted/Untrusted.hpp

@@ -19,6 +19,7 @@ bool ecall_identity_key_load(sgx_ec256_public_t* outpub,
     const sgx_sealed_data_t* insealedpriv);
 
 bool ecall_config_load(threadid_t nthreads,
+    bool private_routing,
     struct EnclaveAPIParams *apiparams,
     struct EnclaveAPINodeConfig *apinodeconfigs,
     nodenum_t num_nodes, nodenum_t my_node_num);