Date: Wed, 26 Jul 2006 07:12:32 -0700 From: Luigi Rizzo <rizzo@icir.org> To: net@freebsd.org Subject: multiple DSL modems and pppoe sessions on the same ethernet ? Message-ID: <20060726071232.A96367@xorpc.icir.org>
next in thread | raw e-mail | index | archive | help
hi, i am trying to run, on a single FreeBSD box, multiple (3 in my case) pppoe instances talking to as many DSL modems on the same ethernet cable ------+--------------+--------------+--------------+----- | | | | +-[modem1] +-[modem2] +-[modem3] +-[FreeBSD/ppp] DSL#1 DSL#2 DSL#3 Ideally, in /etc/ppp/ppp.conf i can write something like modem1: set device PPPoE:rl0:dsl1 ... modem2: set device PPPoE:rl0:dsl2 ... modem3: set device PPPoE:rl0:dsl3 ... and the PPPoE spec (RFC2516) says this should work as long as each DSL line has a different 'service name' (tag 0x101 in the packet). The problem is, my provider does not provide specific service names, but it will accept anything i supply. So when i run the three ppp instances, they will all match, and the code in ng_pppoe.c will happily take the first reply as good. The only approach left is then implement some form of MAC filtering, e.g. overloading the 'service name' to specify the mac address of the modem i am interested in. There is a couple of ways to implement this, one is patching the receive path (ng_pppoe_rcvdata(), case PADO_CODE) to filter replies based on the source mac address, and the other one is to patch the code transmitting the PADI packet to replace the broadcast dst address with the unicast MAC taken from the "service name". Any better ideas ? cheers luigi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060726071232.A96367>