Esempio n. 1
0
/*
@func int32 | rtl865x_addNxtHop |add a nexthop entry
@parm uint32 | attr | attribute. NEXTHOP_L3/NEXTHOP_REDIRECT.
@parm void* | ref_ptr | entry pointer who refer this nexthop entry.
@parm rtl865x_netif_local_t* | netif | network interface.
@parm uint32 | nexthop | nexthop. ip address when linktype is ethernet, session id when linktype is ppp session based.
@rvalue SUCCESS | success.
@rvalue FAILED | failed.
@comm	
*/
int32 rtl865x_addNxtHop(uint32 attr, void *ref_ptr, rtl865x_netif_local_t *netif, uint32 nexthop,uint32 srcIp)
{
	int32 ret = FAILED;
	unsigned long flags=0;	
	//rtl_down_interruptible(&nxthop_sem);	
	SMP_LOCK_ETH_HW(flags);
	ret = _rtl865x_addNxtHop(attr,ref_ptr,netif,nexthop,srcIp);	
	//rtl_up(&nxthop_sem);	
	SMP_UNLOCK_ETH_HW(flags);
	return ret;
}
/*
@func int32 | rtl865x_addNxtHop |add a nexthop entry
@parm uint32 | attr | attribute. NEXTHOP_L3/NEXTHOP_REDIRECT.
@parm void* | ref_ptr | entry pointer who refer this nexthop entry.
@parm rtl865x_netif_local_t* | netif | network interface.
@parm uint32 | nexthop | nexthop. ip address when linktype is ethernet, session id when linktype is ppp session based.
@rvalue SUCCESS | success.
@rvalue FAILED | failed.
@comm	
*/
int32 rtl865x_addNxtHop(uint32 attr, void *ref_ptr, rtl865x_netif_local_t *netif, uint32 nexthop,uint32 srcIp)
{
	int32 ret = FAILED;
	unsigned long flags;	
	//rtl_down_interruptible(&nxthop_sem);	
	local_irq_save(flags);
	ret = _rtl865x_addNxtHop(attr,ref_ptr,netif,nexthop,srcIp);	
	//rtl_up(&nxthop_sem);	
	local_irq_restore(flags);
	return ret;
}