diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b55028c39f7b00c6b378a2206e3efbcc5cd708e7..5579a6500599af11d5f972e491222e1ec85f98e6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -149,22 +149,22 @@ smokeinfraBatch4:
      - smokeinfra/results/
      - bin/
 
-smokeinfraBatch1:
-  stage: tests
-  image: $DOCKER_IMAGE
-  script:
-    - mkdir -p ~/.elixxir
-    - echo $PWD
-    - cd smokeinfra
-    - git checkout -- .
-    - sed -i 's/\ 42/\ 1/g' *.yaml
-    - ./run.sh
-    - cd ..
-  artifacts:
-    when: always
-    paths:
-     - smokeinfra/results/
-     - bin/
+# smokeinfraBatch1:
+#   stage: tests
+#   image: $DOCKER_IMAGE
+#   script:
+#     - mkdir -p ~/.elixxir
+#     - echo $PWD
+#     - cd smokeinfra
+#     - git checkout -- .
+#     - sed -i 's/\ 42/\ 1/g' *.yaml
+#     - ./run.sh
+#     - cd ..
+#   artifacts:
+#     when: always
+#     paths:
+#      - smokeinfra/results/
+#      - bin/
 
 
 benchmark:
diff --git a/basice2e/permissioning.yaml b/basice2e/permissioning.yaml
index 3c202247444984a363347cb698b63d2a8d95fbff..389fef345d0dfea1fb0dd9cef9576ef2ab116b11 100644
--- a/basice2e/permissioning.yaml
+++ b/basice2e/permissioning.yaml
@@ -31,3 +31,24 @@ keyPath: "../keys/cmix.rip.key"
 certPath: "../keys/cmix.rip.crt"
 
 ndfOutputPath: "results/permissions-ndfoutput.json"
+
+# === REQUIRED FOR ENABLING TLS ===
+# Path to the private key file
+keyPath: "../keys/cmix.rip.key"
+# Path to the certificate file
+certPath: "../keys/cmix.rip.crt"
+# Path to the certificate file
+serverCertPath: "../keys/cmix.rip.crt"
+
+udbID: 3
+
+
+groups:
+  cmix:
+    prime: "F6FAC7E480EE519354C058BF856AEBDC43AD60141BAD5573910476D030A869979A7E23F5FC006B6CE1B1D7CDA849BDE46A145F80EE97C21AA2154FA3A5CF25C75E225C6F3384D3C0C6BEF5061B87E8D583BEFDF790ECD351F6D2B645E26904DE3F8A9861CC3EAD0AA40BD7C09C1F5F655A9E7BA7986B92B73FD9A6A69F54EFC92AC7E21D15C9B85A76084D1EEFBC4781B91E231E9CE5F007BC75A8656CBD98E282671C08A5400C4E4D039DE5FD63AA89A618C5668256B12672C66082F0348B6204DD0ADE58532C967D055A5D2C34C43DF9998820B5DFC4C49C6820191CB3EC81062AA51E23CEEA9A37AB523B24C0E93B440FDC17A50B219AB0D373014C25EE8F"
+    smallprime: "D6B35AA395D9287A5530C474D776EA2FCF5B815E89C9DB4C7BB7A9EFB8F3F34B"
+    generator: "B22FDF91EE6BA01BDE4969C1A986EA1F81C4A1795921403F3437D681D05E95167C2F6414CCB74AC8D6B3BA8C0E85C7E4DEB0E8B5256D37BC5C21C8BE068F5342858AFF2FC7FF2644EBED8B10271941C74C86CCD71AA6D2D98E4C8C70875044900F842998037A7DFB9BC63BAF1BC2800E73AF9615E4F5B869D4C6DE6E5F48FACE9CA594CC5D228CB7F763A0AD6BF6ED78B27F902D9ADA38A1FCD7D09E398CE377BB15A459044D3B8541DC6D8049B66AE1662682254E69FAD31CA0016251D0522EF8FE587A3F6E3AB1E5F9D8C2998874ABAB205217E95B234A7D3E69713B884918ADB57360B5DE97336C7DC2EB8A3FEFB0C4290E7A92FF5758529AC45273135427"
+  e2e:
+    prime: "E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D49413394C049B7A8ACCEDC298708F121951D9CF920EC5D146727AA4AE535B0922C688B55B3DD2AEDF6C01C94764DAB937935AA83BE36E67760713AB44A6337C20E7861575E745D31F8B9E9AD8412118C62A3E2E29DF46B0864D0C951C394A5CBBDC6ADC718DD2A3E041023DBB5AB23EBB4742DE9C1687B5B34FA48C3521632C4A530E8FFB1BC51DADDF453B0B2717C2BC6669ED76B4BDD5C9FF558E88F26E5785302BEDBCA23EAC5ACE92096EE8A60642FB61E8F3D24990B8CB12EE448EEF78E184C7242DD161C7738F32BF29A841698978825B4111B4BC3E1E198455095958333D776D8B2BEEED3A1A1A221A6E37E664A64B83981C46FFDDC1A45E3D5211AAF8BFBC072768C4F50D7D7803D2D4F278DE8014A47323631D7E064DE81C0C6BFA43EF0E6998860F1390B5D3FEACAF1696015CB79C3F9C2D93D961120CD0E5F12CBB687EAB045241F96789C38E89D796138E6319BE62E35D87B1048CA28BE389B575E994DCA755471584A09EC723742DC35873847AEF49F66E43873"
+    smallprime: "71774C1E818EE0EDB78D3D33EF874D472AB0EDC746A4A099CA6024DBD456676E14C3847890CA8ECE7C90762E8A3393D525729AD849163445AAD9EE9576FB600E4A3B26D5C9BC9AD541DF1B733BB0389D5A25319BE1073C30ABAF3A2E98FC5CF4D6C20908C63151F1714EFA3584326864A8E1CA52E5DEE356E38C6E951F020811EDDAD591F5DA3A16F4E0B43DAD9A7D2461A90B19625298747FD8DE28ED6EFA29D85938BE15E3334F6BB5A5EEAE4FFAAC74479372BC29815F6DE511F562D674904B7745303217DB0F479E924C85C658977224777BC70C2639216E8B0E3B9C7995F94D420B4C4BC412DA088DA5E1F0F0CC22A84ACAC199EBBB6C595F7769D0D0D110D371BF3325325C1CC0E237FEEE0D22F1EA908D57C5FDE0393B4627A86BEBC01E96A793C6F400A523991B18EBF0326F40E0635FD21F78734CC430789C85AE9FF56578B4B00AE5BCE1FCE16C9ECB089066872F8965DB43F55822920FCB3C4E1C744EBCB09C7318CDF3171AEC3D882465145F1C4DABAF4CA6E53AAA38AC2504F6391BA16E1AC39C23D77A4FB3721C39"
+    generator: "2"
diff --git a/basice2e/run.sh b/basice2e/run.sh
index 058c982273ee7fa7bfb105cb8644ec1c1e94cb8d..71096b21879496dd3ddfb61898c291fca5062cbe 100755
--- a/basice2e/run.sh
+++ b/basice2e/run.sh
@@ -41,7 +41,7 @@ echo "$PERMCMD -- $PIDVAL"
 for SERVERID in $(seq 5 -1 1)
 do
     IDX=$(($SERVERID - 1))
-    SERVERCMD="../bin/server --disablePermissioning  -v -i $IDX --roundBufferTimeout 300s --config server-$SERVERID.yaml"
+    SERVERCMD="../bin/server  -v -i $IDX --roundBufferTimeout 300s --config server-$SERVERID.yaml"
     if [ $SERVERID -eq 4 ]; then
         sleep 15 # This will force a CDE timeout
     fi
@@ -50,13 +50,13 @@ do
     echo "$SERVERCMD -- $PIDVAL"
 done
 
-sleep 5 # Give servers some time to boot
+sleep 15 # Give servers some time to boot
 
 # Start gateways
 for GWID in $(seq 5 -1 1)
 do
     IDX=$(($GWID - 1))
-    GATEWAYCMD="../bin/gateway -v -i $IDX --disablePermissioning  --config gateway-$GWID.yaml"
+    GATEWAYCMD="../bin/gateway -v -i $IDX  --config gateway-$GWID.yaml"
     $GATEWAYCMD > $GATEWAYLOGS/gateway-$GWID-console.txt 2>&1 &
     PIDVAL=$!
     echo "$GATEWAYCMD -- $PIDVAL"
@@ -247,4 +247,12 @@ cat $GATEWAYLOGS/*.log | grep "ERROR" | grep -v "context" | grep -v "certificate
 cat $GATEWAYLOGS/*.log | grep "FATAL" | grep -v "context" >> results/gateway-errors.txt || true
 diff -ruN results/gateway-errors.txt noerrors.txt
 
+echo "CHECKING THAT AT LEAST 2 ROUNDS RAN"
+cat results/servers/server-5.log | grep "RID 1 ReceiveFinishRealtime END" > rid.txt || true
+if [ ! -s rid.txt ]; then
+    echo "FAILURE!"
+    exit 42
+fi
+
+
 echo "NO OUTPUT ERRORS, SUCCESS!"
diff --git a/smokeinfra/noerrors.txt b/smokeinfra/noerrors.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/smokeinfra/run.sh b/smokeinfra/run.sh
index f3cb3f7304acedf4171adba000e65fdda596cb6e..392f788a0552d27c90be9fd201a39e648baf7be7 100755
--- a/smokeinfra/run.sh
+++ b/smokeinfra/run.sh
@@ -17,21 +17,19 @@ echo "STARTING SERVERS..."
 for SERVERID in $(seq 3 -1 1)
 do
     IDX=$(($SERVERID - 1))
-    SERVERCMD="../bin/server -v -i $IDX --roundBufferTimeout 300s --config server-$SERVERID.yaml --noTLS"
+    SERVERCMD="../bin/server -v -i $IDX --roundBufferTimeout 300s --config server-$SERVERID.yaml --noTLS --disablePermissioning"
     $SERVERCMD > $SERVERLOGS/server-$SERVERID.console 2>&1 &
     PIDVAL=$!
     echo "$SERVERCMD -- $PIDVAL"
 done
 
-sleep 5 # Give servers some time to boot
-
 echo "STARTING GATEWAYS..."
 
 # Start gateways
 for GWID in $(seq 3 -1 1)
 do
     IDX=$(($GWID - 1))
-    GATEWAYCMD="../bin/gateway -v -i $IDX --config gateway-$GWID.yaml --noTLS"
+    GATEWAYCMD="../bin/gateway -v -i $IDX --config gateway-$GWID.yaml --noTLS --disablePermissioning"
     $GATEWAYCMD > $GATEWAYLOGS/gateway-$GWID.console 2>&1 &
     PIDVAL=$!
     echo "$GATEWAYCMD -- $PIDVAL"
@@ -47,13 +45,12 @@ finish() {
         echo "KILLING $job"
         kill $job || true
     done
-    tail $SERVERLOGS/*.console
 }
 
 trap finish EXIT
 trap finish INT
 
-sleep 60
+sleep 15
 
 echo "STOPPING SERVERS AND GATEWAYS..."
 # NOTE: jobs -p doesn't work in a signal handler
@@ -62,4 +59,27 @@ do
     echo "Stopping $job"
     kill $job
 done
+
+echo "CHECKING OUTPUT FOR ERRORS"
+set +x
+
+cat $SERVERLOGS/server-*.log | grep "ERROR" | grep -v "context" | grep -v "metrics" | grep -v "database" > results/server-errors.txt || true
+cat $SERVERLOGS/server-*.log | grep "FATAL" |  grep -v "context" | grep -v "database" >> results/server-errors.txt || true
+diff -ruN results/server-errors.txt noerrors.txt
+
+cat $GATEWAYLOGS/*.log | grep "ERROR" | grep -v "certificate" | grep -v "context" | grep -v "database" | grep -v "Failed to read key" | grep -v "$IGNOREMSG" > results/gateway-errors.txt || true
+cat $GATEWAYLOGS/*.log | grep "FATAL" | grep -v "context" | grep -v "database" >> results/gateway-errors.txt || true
+diff -ruN results/gateway-errors.txt noerrors.txt
+
+echo "NO OUTPUT ERRORS"
+
+echo "CHECKING THAT AT LEAST 2 ROUNDS RAN"
+cat results/server-3.log | grep "RID 1 ReceiveFinishRealtime END" > rid.txt || true
+if [ ! -s rid.txt ]; then
+    echo "FAILURE!"
+    exit 42
+fi
+
+echo "SUCCESS!"
+
 tail $SERVERLOGS/*.console
diff --git a/smokeinfra/server-1.yaml b/smokeinfra/server-1.yaml
index 1598ebd4e95f350260f47886b8d321f5f824cc8f..801cc9384685c264a5c285391136a252cb14e917 100644
--- a/smokeinfra/server-1.yaml
+++ b/smokeinfra/server-1.yaml
@@ -6,6 +6,7 @@
 ################################################################################
 # batch size
 batch: 42
+skipReg: true
 # debug logging
 verbose: true
 node:
diff --git a/smokeinfra/server-2.yaml b/smokeinfra/server-2.yaml
index ce82f60295ed0837f48a04802e7d3e48cc77d0f9..e8c581f3b334d6023e8635bb5a64792c48565167 100644
--- a/smokeinfra/server-2.yaml
+++ b/smokeinfra/server-2.yaml
@@ -6,6 +6,7 @@
 ################################################################################
 # batch size
 batch: 42
+skipReg: true
 # debug logging
 verbose: true
 node:
diff --git a/smokeinfra/server-3.yaml b/smokeinfra/server-3.yaml
index 802c7dd7b83ec6a576da35d4780eb92febee2150..214db87619a5d4d2e4635278d2084686b5cccccc 100644
--- a/smokeinfra/server-3.yaml
+++ b/smokeinfra/server-3.yaml
@@ -6,6 +6,7 @@
 ################################################################################
 # batch size
 batch: 42
+skipReg: true
 # debug logging
 verbose: true
 node: