summaryrefslogtreecommitdiffstats
path: root/cnd/inc/cnd_iproute2.h
diff options
context:
space:
mode:
Diffstat (limited to 'cnd/inc/cnd_iproute2.h')
-rwxr-xr-x[-rw-r--r--]cnd/inc/cnd_iproute2.h174
1 files changed, 120 insertions, 54 deletions
diff --git a/cnd/inc/cnd_iproute2.h b/cnd/inc/cnd_iproute2.h
index 1429725..0c41875 100644..100755
--- a/cnd/inc/cnd_iproute2.h
+++ b/cnd/inc/cnd_iproute2.h
@@ -33,10 +33,11 @@
@file cnd_iproute2.h
cnd_iproute2 is an interface to make the necessary calls to iproute2
- in order to set up and take down routing tables. Defines APIS so that
- a routing table associated with a RAT can be added or deleted. Also
- allows the user to change the default routing table when a given
- source address is not already associated with a RAT.
+ in order to set up and take down routing tables. Defines APIs so that
+ a routing table associated with a network interface can be added or
+ deleted. Also allows the user to change the default routing table when
+ a given source address is not already associated with a network
+ interface.
-----------------------------------------------------------------------------*/
@@ -62,11 +63,11 @@ class cnd_iproute2
public:
/**
* @brief Returns an instance of the Cnd_iproute2 class.
-
- The user of this class will call this function to get an
- instance of the class. All other public functions will be
- called on this instance
-
+ *
+ * The user of this class will call this function to get an
+ * instance of the class. All other public functions will be
+ * called on this instance
+ *
* @param None
* @see None
* @return An instance of the Cnd_iproute2 class is returned.
@@ -77,21 +78,49 @@ class cnd_iproute2
);
/**
- * @brief Create a routing table for a RAT using iproute2
+ * @brief Creates a custom route in the main table using iproute2
+ *
+ * The user of this function passes in the name of the network
+ * interface that matches the name already defined in the Android
+ * system. This radio will handle any packets that are sent to
+ * the inputted destination address of a host. Optionally, a user
+ * can pass the gateway address of the device.
*
- * The user of this function passes in the name of the RAT that
- * matches the name already defined in the Android system. The
- * user also needs to locate the gateway address and source
- * prefix assocated with that RAT device. If a table is added
- * when no another tables exist, it will automatically become the
- * default table.
+ * @param destinationAddress The destination address of the
+ * custom entry in the main table that
+ * will be added
+ * @param deviceName The name of the device that will
+ * handle packets to the host
+ * @param gatewayAddress The gateway address of the device
+ * (optional)
+ * @return True if function is successful.
+ * False otherwise.
+ */
+ bool addCustomEntryInMainTable
+ (
+ uint8_t *destinationAddress,
+ uint8_t *deviceName,
+ uint8_t *gatewayAddress
+ );
+
+ /**
+ * @brief Create a routing table for a network interface using
+ * iproute2
+ *
+ * The user of this function passes in the name of the network
+ * interface that matches the name already defined in the Android
+ * system. The user also needs to locate the source prefix, and,
+ * optionally, the gateway address assocated with that radio. If
+ * a table is added when no another tables exist, it will
+ * automatically become the default table.
*
* @param deviceName The name of the device whose table
- * will be added (Such as wlan or wwan)
+ * will be added
* @param sourcePrefix The source network prefix or address
* that will be routed to the device
* (Such as 37.214.21/24 or 10.156.45.1)
- * @param gatewayAddress The gateway address of the device.
+ * @param gatewayAddress The gateway address of the device
+ * (optional)
* @return True if function is successful. False
* otherwise.
*/
@@ -103,59 +132,97 @@ class cnd_iproute2
);
/**
- * @brief Change the default routing table that is associated
- * with any source addresses not bound to another table.
+ * @brief Deletes the custom route to the inputted destination
+ * address in the main table using iproute2
*
- * The user of this function passes in the name of the RAT that
- * matches the name already defined in the Android system. That
- * device will become the new default. If this RAT is already the
- * default, this function simply returns true.
+ * The custom route being deleted should have been added via
+ * addCustomEntryToMainTable()
*
- * @param deviceName The name of the device whose table
- * will be added (Such as wlan or wwan)
+ * @param destinationAddress The destination address of the
+ * custom entry in the main table that
+ * will be removed
+ * @return True if function is successful.
+ * False otherwise.
+ */
+ bool deleteCustomEntryInMainTable
+ (
+ uint8_t *destinationAddress
+ );
+
+ /**
+ * @brief Deletes all custom routes in the main table that route
+ * through a specific interface name
+ *
+ * The custom routes being deleted should have been added via
+ * addCustomEntryToMainTable()
+ *
+ * @param deviceName The name of the device whose custom
+ * entries in the main table will be
+ * removed
* @return True if function is successful. False
* otherwise.
*/
- bool changeDefaultTable
+ bool deleteDeviceCustomEntriesInMainTable
(
uint8_t *deviceName
);
/**
- * @brief Deletes a default entry from the main table.
+ * @brief Deletes a default entry from the main table.
*
- * @param deviceName The name of the device whose default
- * entry in the main table will be
- * deleted (Such as wlan or wwan)
- * @return True if function is successful. False
- * otherwise.
+ * @param deviceName The name of the device whose default
+ * entry in the main table will be
+ * deleted
+ * @return True if function is successful. False
+ * otherwise.
*/
- bool deleteDefaultEntryFromMainTable
+ bool deleteDefaultEntryInMainTable
(
uint8_t *deviceName
);
/**
- * @brief Deletes a routing table from the system along with the
- * rule corresponding to that table.
+ * @brief Deletes a routing table from the system along with the
+ * rule corresponding to that table.
+ *
+ * The table being deleted should have been added via
+ * addRoutingTable()
*
- * @param deviceName The name of the device whose table will be
- * deleted (Such as wlan or wwan)
- * @return True if function is successful. False
- * otherwise.
+ * @param deviceName The name of the device whose table will be
+ * deleted
+ * @return True if function is successful. False
+ * otherwise.
*/
bool deleteRoutingTable
(
uint8_t *deviceName
);
+ /**
+ * @brief Change the default routing table that is associated
+ * with any source addresses not bound to another table.
+ *
+ * The user of this function passes in the name of the network
+ * interface that matches the name already defined in the Android
+ * system. That device will become the new default. If this radio
+ * is already the default, this function simply returns true.
+ *
+ * @param deviceName The name of the device whose table
+ * will be added
+ * @return True if function is successful. False
+ * otherwise.
+ */
+ bool replaceDefaultEntryInMainTable
+ (
+ uint8_t *deviceName
+ );
/**
- * Displays the contents of all routing tables for debugging
- * purposes.
+ * Displays the contents of all routing tables for debugging
+ * purposes.
*
- * @return True if function is successful. False
- * otherwise.
+ * @return True if function is successful. False
+ * otherwise.
*/
bool showAllRoutingTables
(
@@ -163,13 +230,12 @@ class cnd_iproute2
);
/**
- * Displays the contents of the routing table associated with
- * the inputted device name.
+ * Displays the contents of the routing table associated with
+ * the inputted device name.
*
- * @param deviceName The name of the device to be displayed
- * (Usually wlan or wwan)
- * @return True if function is successful. False
- * otherwise.
+ * @param deviceName The name of the device to be displayed
+ * @return True if function is successful. False
+ * otherwise.
*/
bool showRoutingTable
(
@@ -177,11 +243,11 @@ class cnd_iproute2
);
/**
- * Displays the rules associated with all tables for debugging
- * purposes.
+ * Displays the rules associated with all tables for debugging
+ * purposes.
*
- * @return True if function is successful. False
- * otherwise.
+ * @return True if function is successful. False
+ * otherwise.
*/
bool showRules
(