From 561e4fb9f6273a97d31de104bd362d8a53b8c8e9 Mon Sep 17 00:00:00 2001 From: Julian Elischer Date: Thu, 6 Jul 2000 15:35:59 +0000 Subject: [PATCH] Don't forget to set our MAC address into packets we wre sending out via netgraph. Eventually we may need to have a separate hook for packets that already have a source AMC address but for now just drop it in. Should fix PPPoE. --- sys/netgraph/ng_ether.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c index 1df202dbe5f..508b2162fbd 100644 --- a/sys/netgraph/ng_ether.c +++ b/sys/netgraph/ng_ether.c @@ -64,6 +64,7 @@ #include #include +#define IFP2AC(IFP) ((struct arpcom *)IFP) #define IFP2NG(ifp) ((struct ng_node *)((struct arpcom *)(ifp))->ac_netgraph) /* Per-node private data */ @@ -494,6 +495,7 @@ static int ng_ether_rcv_lower(node_p node, struct mbuf *m, meta_p meta) { const priv_p priv = node->private; + struct ether_header *eh; /* Make sure header is fully pulled up */ if (m->m_pkthdr.len < sizeof(struct ether_header)) { @@ -506,6 +508,10 @@ ng_ether_rcv_lower(node_p node, struct mbuf *m, meta_p meta) return (ENOBUFS); } + /* drop in the MAC address */ + eh = mtod(m, struct ether_header *); + bcopy((IFP2AC(priv->ifp))->ac_enaddr, eh->ether_shost, 6); + /* Send it on its way */ NG_FREE_META(meta); return ether_output_frame(priv->ifp, m);