ppp-project / ppp

Paul's PPP Package: PPP daemon and associated utilities | Official GitHub repo: https://github.com/ppp-project/ppp
https://github.com/ppp-project/ppp
Other
384 stars 228 forks source link

Option to Generate Discard-Request after LCP Configuration #466

Open sadmoody opened 8 months ago

sadmoody commented 8 months ago

RFC 1661 outlines the Discard-Request with very minimal information. What I have gathered is that it is a frame sent by the sink node as soon as the LCP negotiation is over but before authentication begins. RFC 1661 also outlines that it could be useful during debugging, performance testing, and for numerous other functions - but outside of some posts from log dumps on router forums, I can't find much else out there.

There is currently no method for this implementation of PPP to send a Discard-Request frame.

I'm aware that the implementation and purpose of the Discard-Request is hazy, but it would be beneficial for us if we could trigger its sending.

Specifically - we're interested in setting up a test suite for some IoT devices which connect via a cellular network. We see this frame sent to our device right after the LCP configuration with the cellular network. The correct thing to do when receiving this packet is to discard it (which this implementation of PPP does), but there is currently no way of triggering the Discard-Request frame to send so that our implementation of a cellular network emulator mirrors that of the cellular network provider.

Aware that this is an extremely specific edge-case with limited utility (there must be a reason no one has brought it up in the last 20 something years).

Happy to code this functionality ourselves, but just wanting someone to sanity check this since the knowledge about the utility of the Discard-Request frame seems difficult to find!

Thanks!

Neustradamus commented 8 months ago

@paulusmack, @enaess, @jkroonza, @chipitsine: What do you think?

chipitsine commented 8 months ago

GitHub search brings some ideas ...

https://github.com/search?q=Discard-Request&type=code

jkroonza commented 8 months ago

Other than for the test suite mentioned here I honestly don't see any particular use for this. The one case may be to maintain open ome form of NAT tunnel or something, but LCP adaptive echo is sufficient for that IMHO so I don't personally see an active need for this (other than to be able to test that the IOT devices handles it correctly on receipt as part of the test suite mentioned here.

sadmoody commented 8 months ago

Other than for the test suite mentioned here I honestly don't see any particular use for this.

Fair enough. I guess it's a question of whether this is something worth putting in for the sake of a more complete implementation.

Anyhow, if you're the one other person looking up how to send a Discard-Request in 20 years' time and you come across this issue, you can probably just use a compiler definition flag when testing your device to not expect the Discard-Request during connection. Also, I hope the world is ok.

Neustradamus commented 3 weeks ago

@enaess: What do you think?

enaess commented 3 weeks ago

If someone wants to add it, I won't object. However, as far as practical purposes goes I don't think this is used much and at best pppd will reject or ignore it.