ppp-project/ppp

Option to Generate Discard-Request after LCP Configuration

sadmoody opened this issue · 6 comments

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!

GitHub search brings some ideas ...

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

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.

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.