summaryrefslogtreecommitdiffstats
path: root/cnd
diff options
context:
space:
mode:
authorChinh Tran <chinht@codeaurora.org>2010-09-01 18:11:05 -0700
committerLinux Build Service Account <lnxbuild@qualcomm.com>2010-09-14 00:04:46 -0600
commit74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598 (patch)
tree3b2e7d82220678bcb9a446043295cc3d78200dd0 /cnd
parentc0dec5a4d77520b907949d5bdd1b8df41bcd77dd (diff)
downloadandroid_external_connectivity-74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598.tar.gz
android_external_connectivity-74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598.tar.bz2
android_external_connectivity-74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598.zip
CNE: Add changes to support FMC
Handles the commands to start, stop FMC, to report the destination IP address, and to set the destination routing table entry. Change-Id: I12c72c8480ac470ee2269ca0063b2d8d7c8e767c
Diffstat (limited to 'cnd')
-rw-r--r--cnd/inc/cnd_commands.h5
-rw-r--r--cnd/inc/cnd_unsol_messages.h5
-rwxr-xr-xcnd/src/cnd_process.cpp32
3 files changed, 33 insertions, 9 deletions
diff --git a/cnd/inc/cnd_commands.h b/cnd/inc/cnd_commands.h
index 85a913f..0db8812 100644
--- a/cnd/inc/cnd_commands.h
+++ b/cnd/inc/cnd_commands.h
@@ -28,6 +28,9 @@
{CNE_NOTIFY_DEFAULT_NW_PREF_CMD, dispatchInts, responseVoid},
{CNE_REQUEST_UPDATE_WLAN_SCAN_RESULTS_CMD, dispatchWlanScanResults, responseVoid},
{CNE_NOTIFY_SENSOR_EVENT_CMD, dispatchVoid, responseVoid},
- {CNE_REQUEST_CONFIG_IPROUTE2_CMD, dispatchIproute2Cmd, responseVoid}
+ {CNE_REQUEST_CONFIG_IPROUTE2_CMD, dispatchIproute2Cmd, responseVoid},
+ {CNE_NOTIFY_TIMER_EXPIRED_CMD, dispatchVoid, responseVoid},
+ {CNE_REQUEST_START_FMC_CMD, dispatchString, responseVoid},
+ {CNE_REQUEST_STOP_FMC_CMD, dispatchVoid, responseVoid}
diff --git a/cnd/inc/cnd_unsol_messages.h b/cnd/inc/cnd_unsol_messages.h
index c276067..4d809f2 100644
--- a/cnd/inc/cnd_unsol_messages.h
+++ b/cnd/inc/cnd_unsol_messages.h
@@ -25,5 +25,6 @@
{CNE_NOTIFY_MORE_PREFERED_RAT_AVAIL_MSG, evtMorePrefNw},
{CNE_NOTIFY_RAT_LOST_MSG, responseInts},
{CNE_REQUEST_START_SCAN_WLAN_MSG, responseVoid},
- {CNE_NOTIFY_INFLIGHT_STATUS_MSG, responseInts}
-
+ {CNE_NOTIFY_INFLIGHT_STATUS_MSG, responseInts},
+ {CNE_NOTIFY_FMC_STATUS_MSG, responseInts},
+ {CNE_NOTIFY_HOST_ROUTING_IP_MSG, responseString}
diff --git a/cnd/src/cnd_process.cpp b/cnd/src/cnd_process.cpp
index b7a73b1..c93bb53 100755
--- a/cnd/src/cnd_process.cpp
+++ b/cnd/src/cnd_process.cpp
@@ -221,16 +221,35 @@ processCommand (int command, void *data, size_t datalen, CND_Token t)
cnd_iproute2* cnd_iproute2_ptr = cnd_iproute2::getInstance();
if (cnd_iproute2_ptr != NULL) {
// Call iproute2 API
- if (cmd == CNE_IPROUTE2_ADD_DEFAULT) {
+ switch(cmd)
+ {
+ case CNE_IPROUTE2_ADD_ROUTING:
cnd_iproute2::getInstance()->addRoutingTable(ifName, ipAddr, gatewayAddr);
- } else if (cmd == CNE_IPROUTE2_DELETE_DEFAULT) {
+ break;
+ case CNE_IPROUTE2_DELETE_ROUTING:
+ case CNE_IPROUTE2_DELETE_HOST_ROUTING:
cnd_iproute2::getInstance()->deleteRoutingTable(ifName);
- } else if (cmd == CNE_IPROUTE2_DELETE_DEFAULT_FROM_MAIN) {
+ break;
+ case CNE_IPROUTE2_DELETE_DEFAULT_IN_MAIN:
+ case CNE_IPROUTE2_DELETE_HOST_DEFAULT_IN_MAIN:
cnd_iproute2::getInstance()->deleteDefaultEntryInMainTable(ifName);
- } else if (cmd == CNE_IPROUTE2_CHANGE_DEFAULT_FROM_MAIN) {
+ break;
+ case CNE_IPROUTE2_REPLACE_DEFAULT_ENTRY_IN_MAIN:
+ case CNE_IPROUTE2_REPLACE_HOST_DEFAULT_ENTRY_IN_MAIN:
cnd_iproute2::getInstance()->replaceDefaultEntryInMainTable(ifName);
+ break;
+ case CNE_IPROUTE2_ADD_HOST_IN_MAIN:
+ cnd_iproute2::getInstance()->addCustomEntryInMainTable(ipAddr, ifName, gatewayAddr);
+ break;
+ case CNE_IPROUTE2_DELETE_HOST_IN_MAIN:
+ cnd_iproute2::getInstance()->deleteDeviceCustomEntriesInMainTable(ifName);
+ break;
+ default:
+ LOGE ("processCommand: not iproute2 command=%d", command);
+ break;
}
}
+
return;
}
@@ -294,8 +313,9 @@ dispatchString (Parcel& p, RequestInfo *pRI)
string8 = strdupReadString(p);
- processCommand(pRI->pCI->commandNumber, string8,
- sizeof(char *), pRI);
+ LOGD ("dispatchString: strlen=%d", strlen(string8));
+ processCommand(pRI->pCI->commandNumber, string8, strlen(string8), pRI);
+
#ifdef MEMSET_FREED
memsetString(string8);