# 3 MSF: A Multi-Modal Adaptation of the 6 TiSCH Minimal Scheduling Function for the Industrial IoT
## 5 Simulations and Results  
As a basic proof of concept for 3 MSF (see Section 4), we devised three simple scenarios, which we then evaluated through a combination of heavily modified Contiki-NG firmware and the Cooja simulator [20]. All our modifications of/additions to Cooja and Contiki-NG are open source, allowing anyone to use our code for future multi-modal 6 TiSCH research. More information is available in the Supplementary Materials and the appropriate branches of our GitHub forks of Cooja [21] and Contiki-NG [22], respectively. Concerning Cooja, we built upon our prior adaptation for multi-interface support to now also support multiple communication modes per interface, as well as simultaneous transmission towards the same neighbor (on at most one mode per interface, interfaces are assumed to operate in different frequency bands). As in our prior work [8] (Section 5.2), we used a log-distance path loss model to simulate the electromagnetic properties of the medium. Table 3 lists all the constants we used to configure said model. We also added the capability to \"break\" specific physical links between a given pair of nodes for a given amount of time and in a given direction, meaning that all packets sent on said physical link (regardless of channel) and in said direction will not arrive during said time period. The purpose of doing so depends on the scenario. Regardless of the scenario, each node was configured with the same four interface-modes listed in Table 3, unless noted otherwise. As explained in Section 4.3, each interface-mode maps to a non-simultaneous TSCH mode, which, in turn, map to supercell lengths, each of which corresponds to a set of three coefficients used for deriving \(TxOffset\), \(TxAckDelay\), \(MaxTx\), and \(MaxAck\) from their unit-duration counterparts. Table 4 lists the mappings used, whereas Table 5 lists the timing interval values of a unit-duration timeslot. Figure 13: Updated flowchart of events involved in Contiki-NG probing. The idea is to perform a minimal number of Tx attempts on each interface-mode of a probing target before the probing of said target completes, such that we can reasonably assume all its inferred metrics are fresh upon completion while incurring a minimal amount of overhead. \begin{table}
\begin{tabular}{l r r r r} \hline \hline
**Interface-mode** & IM (1, 1) & IM (1, 2) & IM (2, 1) & IM (2, 2) \\ Data rate & 250 kbps & 250 kbps & 100 kbps & 100 kbps \\ \hline
**TSCH mode** & 0.01 & 1.01 & 0.10 & 1.10 \\ \hline
**Supercell length** & 1 & 1 & 2 & 2 \\ TxOffFactor & – & – & 1.25 & 1.25 \\ TxAckDelFactor & – & – & 1.25 & 1.25 \\ MaxFactor & – & – & 2.75 & 2.75 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Mapping of interface-modes to non-simultaneous TSCH modes, supercell lengths, and timing interval factors. Note that the timing interval factors are listed in decimal notation, but the fields of a FactorList entry follow a fixed-point binary format to save space. \begin{table}
\begin{tabular}{l r r r} \hline \hline
**Constant** & **IM (1, 1)** & **IM (1, 2)** & **IM (2, 1)** & **IM (2, 2)** \\ \hline \(f\) & 2400 MHz & 2400 MHz & 868 MHz & 868 MHz \\ \hline \(P_{t}\) & 0 dBm & 0 dBm & 0 dBm & 0 dBm \\ \hline \(S\) & \(-100\) dBm & \(-100\) dBm & \(-100\) dBm & \(-100\) dBm \\ \hline \(RSSI_{50\%}\) a  & \(-92\) dBm & \(-92\) dBm & \(-92\) dBm \\ \hline \(AG_{t}\) & 0 dBi & 0 dBi & 0 dBi & 0 dBi \\ \hline  
As long as a non-root node is part of the DODAG and has at least one negotiated Tx supercell towards its preferred parent, it (pseudo-)periodically sends data packets to the root. That is, a primary timer expires every 12 s, and upon expiration, a secondary timer is set to a random time less than or equal to 6 s past the primary timer's last expiration. When the secondary timer expires, a node determines whether it can send a data packet to the root. The root is configured not to send responses to these data packets downstream.