]> www.infradead.org Git - users/dwmw2/openconnect.git/commit
add support for PPP-based protocols
authorDavid Woodhouse <dwmw2@infradead.org>
Wed, 6 May 2020 21:10:42 +0000 (22:10 +0100)
committerDaniel Lenski <dlenski@gmail.com>
Mon, 29 Mar 2021 02:27:01 +0000 (19:27 -0700)
commita47406b43c5cb48c0647d3961229f460229da593
tree303c301b77e38e1569e5576fc3cc60f295b2fee1
parent4d992ff08da8f452346e41d7b7bd4342efae383c
add support for PPP-based protocols

This started out as the 'f5' branch, which was then rebased (by DL) onto a
more recent master as 'ppp_rebased'.

This was then squashed down into a single commit, with all of the bits
depending on "real" PPP-based VPN protocols removed, so that only the shell
of generic PPP support remains, including PPP protocol negotation (LCP,
IPCP, IP6CP) and mainloop.

Almost all of this code was done by David Woodhouse and Daniel Lenski in
May 2020, with a few more recent bugfixes by DL in early February 2021.

The remaining shell supports two different encapsulations of PPP:

    - PPP_ENCAP_RFC1661: Plain PPP. “Synchronous” in the ’90s-era language,
      because the start and end of the frame are known from external means.

      In modern instances, this is because they arrive in a complete packet with
      a known length from its lower-level encapsulation. (TLS or DTLS records in
      our expected use cases.)

      This is what `pppd sync` does.

    - PPP_ENCAP_RFC1662: “PPP in HDLC-like framing.”

      This is what `pppd` without `sync` does.

The following commits will add tests to demonstrate the functionality of
OpenConnect's PPP implementation at the level of this generic encapsulation.

Signed-off-by: Daniel Lenski <dlenski@gmail.com>
Makefile.am
gpst.c
library.c
openconnect-internal.h
ppp.c [new file with mode: 0644]
ppp.h [new file with mode: 0644]