private String executeCommand(Vector<String> params, boolean callExecute) {
			String iface = null;
			if (params.size() == 1) {
				iface = params.get(0);
				if (!myDevice.getAllInterfacesNames().contains(iface)) {
					return "error: unknown interface name\n";
				}
			} else if (params.size() == 2) {
				try {
					IPV4Address ip = new IPV4Address(params.get(0));
					for (String candidate : myDevice.getAllInterfacesNames()) {
						ip.setCustomSubnetMask(myDevice.getSubnetMask(candidate));
						if (ip.compareToSubnet(myDevice.getIPAddress(candidate))) {
							iface = candidate;
							break;
						}
					}
				} catch (InvalidIPAddressException e) {
					e.printStackTrace();
					return "error: invalid gateway ip address.\n";
				} catch (InvalidSubnetMaskException e) {
					e.printStackTrace();
					return "internal error: invalid subnet mask!\n";
				}
				if (iface == null) {
					return "error: interface for given network ip and netmask not found\n";
				}
			} else {
				return "error: invalid parameters\n";
			}
			if (callExecute) {
				myDevice.NodeProtocolStack.OSPF().addInterface(iface);
			} else {
				myDevice.NodeProtocolStack.OSPF().removeInterface(iface);
			}
			return "";
		}