private static final String STR_MAC_POL_PATH = "tomoyo/";
private static int INT_SIZE = 4; // send length in the size of integer (4 bytes)
+ private static final int INT_DNS_PORT = 53;
/**
* Runtime class name constants - not to be configured by users
routerConfig.configureHostMainPolicies(strIoTSlaveObjectHostAdd, strIoTSlaveObjectHostAdd, strDeviceAddress, STR_TCP_PROTOCOL, iDestDeviceDriverPort);
routerConfig.configureRouterHTTPPolicies(STR_ROUTER_ADD, strIoTSlaveObjectHostAdd, strDeviceAddress);
routerConfig.configureHostHTTPPolicies(strIoTSlaveObjectHostAdd, strIoTSlaveObjectHostAdd, strDeviceAddress);
+ // Configure MAC policies
+ processJailConfig.configureProcessJailGWDevicePolicies(strIoTSlaveObjectHostAdd, STR_ROUTER_ADD, INT_DNS_PORT);
} else {
// Other port numbers...
commHan.addDevicePort(iDestDeviceDriverPort);
* @return void
*/
private void setRouterPolicyIoTSetAddress(String strFieldIdentifier, Map.Entry<String,Object> map,
- String strHostAddress) {
+ String strHostAddress, String strControllerName) {
// Get information from the set
SetInstrumenter setInstrumenter = (SetInstrumenter) map.getValue();
// Get device address
String strAddress = (String) arrFieldValues[0];
// Setting up router policies for HTTP/HTTPs
+ if (strControllerName != null) {
+ processJailConfig.configureProcessJailInetAddressPolicies(strControllerName, strAddress);
+ } else {
+ processJailConfig.configureProcessJailInetAddressPolicies(strHostAddress, strAddress);
+ }
routerConfig.configureRouterHTTPPolicies(STR_ROUTER_ADD, strHostAddress, strAddress);
routerConfig.configureHostHTTPPolicies(strHostAddress, strHostAddress, strAddress);
}
setRouterPolicyIoTSetDevice(strFieldIdentifier, map, strIoTSlaveObjectHostAdd);
} else if(setInstrumenter.getObjTableName().equals(STR_IOT_ADD_CLS)) {
// Instrument the IoTAddress
- setRouterPolicyIoTSetAddress(strFieldIdentifier, map, strIoTSlaveObjectHostAdd);
+ setRouterPolicyIoTSetAddress(strFieldIdentifier, map, strIoTSlaveObjectHostAdd, null);
} else if(setInstrumenter.getObjTableName().equals(STR_IOT_ZB_ADD_CLS)) {
// Instrument the IoTZigbeeAddress - special feature for Zigbee device support
RuntimeOutput.print("IoTMaster: IoTZigbeeAddress found! No router policy is set here..",
throw new Error(strErrMsg);
} else if(setInstrumenter.getObjTableName().equals(STR_IOT_ADD_CLS)) {
// Instrument the IoTAddress
- setRouterPolicyIoTSetAddress(strFieldName, map, strIoTSlaveControllerHostAdd);
+ setRouterPolicyIoTSetAddress(strFieldName, map, strIoTSlaveControllerHostAdd, strObjControllerName);
instrumentIoTSetAddress(strFieldName, strFieldName, inStream, outStream, STR_LANGUAGE_CONTROLLER);
} else {
// Any other cases
serverSocket.close();
commHan.printLists();
lbIoT.printHostInfo();
+ // TODO: Uncomment this - just for experiments!
createMACPolicyThreads(setAddresses);
}
}
+ /**
+ * configureProcessJailDevicePolicies() method configures the device MAC policies
+ * <p>
+ * This method configures the device policies between device driver and device
+ *
+ * @param strConfigHost String hostname to be configured
+ * @param strRouterAddress String router address
+ * @param iPort Integer port
+ * @return void
+ */
+ public void configureProcessJailGWDevicePolicies(String strConfigHost, String strRouterAddress, int iPort) {
+
+ PrintWriter pwConfig = getPrintWriter(strConfigHost);
+ pwConfig.println("file read /home/iotuser/iot2/iotjava/iotruntime/\\*.jks");
+ pwConfig.println("file read /etc/resolv.conf");
+ pwConfig.println("file read /etc/hosts");
+ pwConfig.println("network inet dgram send " + strRouterAddress + " " + String.valueOf(iPort));
+ }
+
+
+ /**
+ * configureProcessJailDeviceDriverInetAddressPolicies() method configures the device MAC policies
+ * <p>
+ *
+ * @param strConfigHost String hostname to be configured
+ * @param strAddress String device IP address
+ * @return void
+ */
+ public void configureProcessJailInetAddressPolicies(String strConfigHost, String strAddress) {
+
+ PrintWriter pwConfig = getPrintWriter(strConfigHost);
+ //System.out.println("\n\nDEBUG: Writing the config host address setup!!!\n\n");
+ pwConfig.println("network inet stream connect ::ffff:" + strAddress + " " + String.valueOf(80)); // HTTP access for this address
+ }
+
+
/**
* configureProcessJailControllerPolicies() method configures the main MAC policies for controller
*