ppproto

Rust implementation of the Point-to-Point Protocol (PPP) for embedded systems. no-std compatible, no alloc (heap) required.

Relevant RFCs

Testing against pppd

Put this in /etc/ppp/pap-secrets, where myhostname is the hostname of your machine.

myuser myhostname mypass 192.168.7.10

socat -v -x PTY,link=pty1,rawer PTY,link=pty2,rawer pppd $PWD/pty1 115200 192.168.7.1: ms-dns 8.8.4.4 ms-dns 8.8.8.8 nodetach debug local persist silent noproxyarp RUST_LOG=trace cargo run --bin simple -- --device pty2 ping 192.168.7.10

Testing against a real modem

If you want to "MITM" the serial communications to see the raw bytes coming and going, you can do this:

socat -v -x /dev/ttyUSB0 PTY,link=pty,rawer

and then use $PWD/pty instead of /dev/ttyUSB0

License

This work is licensed under either of

at your option.