From b727c912fefac09b0cd6d189eefca89d8a59ceae Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Mon, 4 Apr 2016 23:44:14 +0300 Subject: ipoe_mod: restored ip-mac binding function --- drivers/ipoe/ipoe.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/ipoe/ipoe.c b/drivers/ipoe/ipoe.c index 5300d642..6e5b0b53 100644 --- a/drivers/ipoe/ipoe.c +++ b/drivers/ipoe/ipoe.c @@ -704,7 +704,7 @@ static rx_handler_result_t ipoe_recv(struct sk_buff **pskb) struct ipoe_session *ses = NULL; struct iphdr *iph = NULL; struct _arphdr *arph = NULL; - struct ethhdr *eth; + struct ethhdr *eth = eth_hdr(skb); int noff; struct net_device_stats *stats; __be32 saddr; @@ -783,16 +783,15 @@ static rx_handler_result_t ipoe_recv(struct sk_buff **pskb) stats = &ses->dev->stats; - /*if (ses->link_dev) { - eth = eth_hdr(skb); + if (ses->gw) + memcpy(ses->hwaddr, eth->h_source, ETH_ALEN); + else { if (memcmp(eth->h_source, ses->hwaddr, ETH_ALEN)) { stats->rx_dropped++; kfree_skb(skb); return RX_HANDLER_CONSUMED; } - }*/ - eth = eth_hdr(skb); - memcpy(ses->hwaddr, eth->h_source, ETH_ALEN); + } if (ses->addr > 1 && ipoe_do_nat(skb, ses->addr, 0)) goto drop; -- cgit v1.2.3