[keystone-rtos/netapi.git] / ti / runtime / netapi / applications / ipsec_offload / ipsecmgr / src / netapilib_interface.c
diff --git a/ti/runtime/netapi/applications/ipsec_offload/ipsecmgr/src/netapilib_interface.c b/ti/runtime/netapi/applications/ipsec_offload/ipsecmgr/src/netapilib_interface.c
index bf1b8d6715fa9af2094f1e9f54bedc94f92b6dcf..73a196c190f26118e2b678941c5ddf28a52b812a 100755 (executable)
{
int found = 1;
int i;
- for (i = 0; i<4; i++)
+ if (ip_type == nwal_IPV4)
{
- if (ip1[i] != ip2[i])
+ for (i = 0; i < NWAL_IPV4_ADDR_SIZE; i++)
{
- found = 0;
- break;
+ if (ip1[i] != ip2[i])
+ {
+ found = 0;
+ break;
+ }
}
-
+ return found;
+ }
+ else
+ {
+ for (i = 0; i < NWAL_IPV6_ADDR_SIZE; i++)
+ {
+ if (ip1[i] != ip2[i])
+ {
+ found = 0;
+ break;
+ }
+ }
+ return found;
}
- return found;
}
/**************************************************************************
* FUNCTION PURPOSE: Internal function to find a free slot to store APPID
memset((void *)&route, 0, sizeof (NETCP_CFG_ROUTE_T));
memset((void *)&flow, 0, sizeof (NETCP_CFG_FLOW_T));
-
-
/* Initialize the SA Config structure. */
/* Get the IP protocol version. */
if (af == IPSECMGR_AF_IPV4)
{
saInfo.ipType = nwal_IPV4;
/* Populate the source and destination IP addresses. */
- for (index = 0; index < 4; index++)
+ for (index = 0; index < NWAL_IPV4_ADDR_SIZE; index++)
{
saInfo.dst.ipv4[index] = sa_id->daddr.ipv4[index];
saInfo.src.ipv4[index] = sa_info->saddr.ipv4[index];
saInfo.ipType = nwal_IPV6;
/* Populate the source and destination IP addresses. */
- for (index = 0; index < 16; index++)
+ for (index = 0; index < NWAL_IPV6_ADDR_SIZE; index++)
{
saInfo.dst.ipv6[index] = sa_id->daddr.ipv6[index];
saInfo.src.ipv6[index] = sa_info->saddr.ipv6[index];
{
/* get interface for destination ip address */
if (compareIPAddr(&ipConfigList[i].ip[0],
- &saInfo.dst.ipv4[0],
+ saInfo.ipType == nwal_IPV4 ?
+ &saInfo.dst.ipv4[0]:
+ &saInfo.dst.ipv6[0],
saInfo.ipType))
{
pTok = strtok(ipConfigList[i].name, ":.");
/* now we have the interface name, is this eth0 or eth1 */
if (pTok)
- /* now we have eth0 or eth1, now find the i/f number */
- sscanf(pTok,"eth%d", &iface);
-
+ {
+ /* now we have interface name, now find the i/f number */
+ if(strstr(pTok,"eth"))
+ {
+ sscanf(pTok,"eth%d", &iface);
+ }
+ else if(strstr(pTok,"br"))
+ {
+ sscanf(pTok,"br%d", &iface);
+ }
+ else
+ {
+ ipsecmgr_syslog_msg (SYSLOG_LEVEL_ERROR,
+ "netapilib_ifAddSA: invalid interface\n");
+ return -1;
+ }
+ }
globalDB.rx_sa[slot].iface = iface;
flow.dma_engine= 1;
flow.flowid = globalDB.flowId[iface];
+ printf("add_sa: iface: %d, flowid: %d\n",
+ iface,
+ flow.flowid);
+
route.p_flow = &flow;
route.p_dest_q = globalDB.pktio_channel[iface];
+ printf("add_sa: p_dest_q: 0x%x, flowId: 0x%x\n",
+ route.p_dest_q, route.p_flow->flowid);
+ printf("add_sa: pktio_handle: 0x%x\n", globalDB.pktio_channel[iface]);
break;
-
}
}
-
}
else if (sa_info->dir == DIR_OUTBOUND)
{
)
{
#ifdef ENABLE_ADD_POLICY
+#warning "ENABLE_ADD_POLICY"
NETCP_CFG_IPSEC_POLICY_T spAppIdIn;
int error, index, slot;
nwal_IpType ipType;
{
ipType = nwal_IPV4;
/* Populate the source and destination IP addresses. */
- for (index = 0; index < 4; index++)
+ for (index = 0; index < NWAL_IPV4_ADDR_SIZE; index++)
{
dst_ip_addr.ipv4[index] = sel->daddr.ipv4[index];
src_ip_addr.ipv4[index] = sel->saddr.ipv4[index];
{
ipType = nwal_IPV6;
/* Populate the source and destination IP addresses. */
- for (index = 0; index < 16; index++)
+ for (index = 0; index < NWAL_IPV6_ADDR_SIZE; index++)
{
dst_ip_addr.ipv6[index] = sel->daddr.ipv6[index];
src_ip_addr.ipv6[index] = sel->saddr.ipv6[index];