dfskoll / rp-pppoe

Public repository for RP-PPPoE PPPoE client and server software
https://dianne.skoll.ca/projects/rp-pppoe/
54 stars 18 forks source link

PADT on PADO timeout feature request #28

Closed fluteze closed 10 months ago

fluteze commented 10 months ago

Could you please add the ability to trigger a PADT if PADO/PADI times out? My ISP uses a Cisco access concentrator that will become very quiet for 30 or more minutes after too many PADI/PADO failures happen until/unless a PADT is sent. I'm using RP-PPPoE from the OpenWRT project, current stable as of this post.

dfskoll commented 10 months ago

I don't see how that's possible. Until the client has received a PADS with a session number in it, what session would we put in the PADT?

fluteze commented 10 months ago

The ISP's machine doesn't care about the session number, all 0's work just fine, it just wants a PADT from the right Ethernet address. I know it doesn't match the spec, but it's a live world application. The ISP's rentable modems do that when there is any issue starting the PPPoE portion of the handshake. The machine ID field sometimes appears relevante to the PADT triggering a reset and subsequent success.

dfskoll commented 10 months ago

No, I don't like this idea. If you really need to send a random PADT, you can do it with something like:

pppoe -I eth0 -k -e 0:mac where mac is the MAC address of the access concentrator.

It seems way too niche and hacky to actually add it as a feature to the rp-pppoe software itself.

dfskoll commented 10 months ago

Expanding on my previous answer... it seems to me you can script the functionality you need using the existing pppoe -k option.

dfskoll commented 10 months ago

One more thing... if the PADO is never received, how would the client know the MAC address of the PPPoE access concentrator? The PADT packet can't be a broadcast packet; it has to be a unicast Ethernet packet. So no, can't happen.

fluteze commented 10 months ago

Additional tags for the search engines: Telmex Cisco DSL fiber VLAN PADI non responsive timeout. Workaround suggestion. Broadcast PADT not following protocol. Please leave the request in "completed" status.