summaryrefslogtreecommitdiffstats
path: root/target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c
diff options
context:
space:
mode:
authorRoman Yeryomin <roman@advem.lv>2013-05-17 20:40:24 +0300
committerRoman Yeryomin <roman@advem.lv>2013-05-26 00:48:34 +0300
commit7e810011201bf926cba09ec07424893e4cd8ce67 (patch)
tree202fc7a42607e366848ca59c7a61a8f9fa2712ca /target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c
parenta45894b5a0f65585440d98bf71ef3e919c84cb5f (diff)
Move to rsdk 3.2.4. Compiles cleanly.
Signed-off-by: Roman Yeryomin <roman@advem.lv>
Diffstat (limited to 'target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c')
-rw-r--r--target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c b/target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c
index fab41bcc2..9786c6d9d 100644
--- a/target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c
+++ b/target/linux/realtek/files/drivers/net/rtl819x/l3Driver/rtl865x_arp.c
@@ -379,6 +379,43 @@ static int32 rtl865x_getArpFid(ipaddr_t ip, uint16 *fid)
*fid = vlan->fid;
return SUCCESS;
}
+
+#if 1//#if defined(CONFIG_RTL_AVOID_ADDING_WLAN_PKT_TO_HW_NAT)
+int32 rtl865x_isEthArp(ipaddr_t ip)
+{
+ uint32 hash;
+
+ //memset(mac, 0, sizeof(ether_addr_t));
+
+ if(rtl865x_arp_hash(ip, &hash)!=SUCCESS)
+ {
+ return FALSE;
+ }
+
+ if(arpTables.mappings[hash].ip!=ip)
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+int32 rtl865x_isEthPortMask(uint32 portMask)
+{
+ int i;
+ for(i=0; i <=RTL8651_PHY_NUMBER; i++)
+ {
+
+ if((1<<i) & portMask)
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+#endif
+
#if defined(CONFIG_RTL_MULTIPLE_WAN)
int32 rtl_set_callback_for_ps_arp(int (*call_back_fn)(u32 ip,rtl865x_arpMapping_entry_t *entry))
{
@@ -475,6 +512,14 @@ int32 rtl865x_addArp(ipaddr_t ip, ether_addr_t * mac)
{
continue;
}
+
+ #if 1//#if defined(CONFIG_RTL_AVOID_ADDING_WLAN_PKT_TO_HW_NAT)
+ if(rtl865x_isEthPortMask(fdbEntry.memberPortMask)==FALSE)
+ {
+ continue;
+ }
+ #endif
+
/*indicate new arp mapping*/
if((oldArpMapping.ip!=ip) ||(memcmp(&(oldArpMapping.mac),mac, 6)!=0))