Explorar o código

adding private_routing option to config

Aaron Johnson hai 1 ano
pai
achega
3e2323dedd

+ 4 - 3
App/appconfig.cpp

@@ -84,6 +84,8 @@ bool config_parse(Config &config, const std::string configstr,
                     config.m_pub_out = pentry.second.get_value<uint8_t>();
                 } else if (!pentry.first.compare("pub_in")) {
                     config.m_pub_in = pentry.second.get_value<uint8_t>();
+                } else if (!pentry.first.compare("private_routing")) {
+                    config.private_routing = pentry.second.get_value<bool>();
                 } else {
                     std::cerr << "Unknown field in params: " <<
                         pentry.first << "\n";
@@ -154,6 +156,7 @@ bool config_parse(Config &config, const std::string configstr,
     apiparams.m_priv_in = config.m_priv_in;
     apiparams.m_pub_out = config.m_pub_out;
     apiparams.m_pub_in = config.m_pub_in;
+    apiparams.private_routing = config.private_routing;
     nodenum_t num_nodes = (nodenum_t)(config.nodes.size());
     std::vector<EnclaveAPINodeConfig> apinodeconfigs;
     apinodeconfigs.resize(num_nodes);
@@ -163,9 +166,7 @@ bool config_parse(Config &config, const std::string configstr,
         apinodeconfigs[i].weight = config.nodes[i].weight;
         apinodeconfigs[i].roles = config.nodes[i].roles;
     }
-    bool private_routing = true;
-    ret &= ecall_config_load(nthreads, private_routing, &apiparams,
-        apinodeconfigs.data(), num_nodes, config.my_node_num);
+    ret &= ecall_config_load(nthreads, &apiparams, apinodeconfigs.data(), num_nodes, config.my_node_num);
     if (!ret) {
         std::cerr << "Loading config into enclave failed\n";
     }

+ 1 - 0
App/appconfig.hpp

@@ -26,6 +26,7 @@ struct Config {
     uint8_t m_priv_in;
     uint8_t m_pub_out;
     uint8_t m_pub_in;
+    bool private_routing;
     uint16_t nthreads;
     // config for each node
     std::vector<NodeConfig> nodes;

+ 3 - 0
App/launch

@@ -58,6 +58,8 @@ if __name__ == "__main__":
         help='override max number of outgoing public messages per user per epoch')
     aparse.add_argument('-c', default=None,
         help='override max number of incoming public messages per user per epoch')
+    aparse.add_argument('-r', default=None,
+        help='override if routing private channel messages (or public)')
     aparse.add_argument('-n', nargs='*', help='nodes to include')
     aparse.add_argument('cmd', nargs='*', help='experiment to run')
     args = aparse.parse_args()
@@ -72,6 +74,7 @@ if __name__ == "__main__":
         'priv_in': args.b,
         'pub_out': args.C,
         'pub_in': args.c,
+        'private_routing': args.r
     }
 
     config = mkconfig.create_json(args.m, args.p, args.n, params_overrides)

+ 0 - 1
Enclave/Enclave.edl

@@ -18,7 +18,6 @@ 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 - 2
Enclave/config.cpp

@@ -6,7 +6,7 @@
 
 Config g_teems_config;
 
-bool ecall_config_load(threadid_t nthreads, bool private_routing,
+bool ecall_config_load(threadid_t nthreads,
     EnclaveAPIParams *apiparams,
     EnclaveAPINodeConfig *apinodeconfigs,
     nodenum_t num_nodes, nodenum_t my_node_num)
@@ -23,7 +23,7 @@ bool ecall_config_load(threadid_t nthreads, bool private_routing,
     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;
+    g_teems_config.private_routing = apiparams->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/enclave_api.h

@@ -13,6 +13,7 @@ struct EnclaveAPIParams {
     uint8_t m_priv_in;
     uint8_t m_pub_out;
     uint8_t m_pub_in;
+    bool private_routing;
 };
 
 #define ROLE_INGESTION 0x01

+ 2 - 3
Untrusted/Untrusted.cpp

@@ -226,14 +226,13 @@ 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, private_routing,
-        apiparams, apinodeconfigs, num_nodes, my_node_num);
+    ecall_config_load(global_eid, &ret, nthreads, apiparams, apinodeconfigs,
+        num_nodes, my_node_num);
     return ret;
 }
 

+ 0 - 1
Untrusted/Untrusted.hpp

@@ -20,7 +20,6 @@ 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);