WAN: new PPP code for generic HDLC

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Jeff Garzik <jeff@...>, Andrew Morton <akpm@...>
Cc: <linux-kernel@...>, <netdev@...>
Date: Wednesday, March 12, 2008 - 2:21 pm

Hi,

I'll follow up with a patch for generic HDLC PPP code.

Current status of generic HDLC is:
- up to 2.6.22 - working.
- 2.6.23.* and 2.6.24.* - Frame Relay and PPP protocols panic instantly,
  breakage caused by a change to netdev code that I overlooked.
- 2.6.25-git - Frame Relay is already fixed, PPP still panics.

The fix to FR was simple (983e23041b28abb113862b2935a85cfb9aab4f5a).

PPP has been using syncppp.c implementation for years, meaning working
as a mid-layer between hardware drivers and syncppp. This situation is
increasingly hard to maintain, and I've decided to write a dedicated
PPP implementation for generic HDLC.

Rationale:
- syncppp assumes no mid-layer between itself and hw drivers - dirty
  hacks must be used to work around this
- syncppp doesn't even try to implement PPP correctly, it looks like
  it was written to work with another specific implementation and then
  left in this state for *teen years
- every protocol (LCP and IPCP) uses different state machine code.
- lack of IPv6 support and adding it is non-trivial.
- I've considered using the generic PPP stack, however it's oriented
  towards async tty and requires the pppd daemon - I guess code to
  interface to it would be more complicated than the new PPP code.

The PPP state machine is distributed over many functions and this is
extremely hard to maintain or even understand. No wonder it's not very
standard-compliant.

Instead my new implementation has:
- a single state machine code for all control protocols (LCP, IPCP,
  IPV6CP, and whatever is needed)
- it's modelled after STD-51
- even more minimalistic than syncppp (no "magic number"), though
  adding optional support (if needed) is simple.
- can actually be maintained.

I have positively tested it on i686 and big-endian ARM, against itself
and against syncppp.c. I can't test it against any other device due to
-ENOHW, so I expect some bugs/problems in/with this code, though I hope
it's better than the current brokenness.

I guess it should go into 2.6.25, not sure about "stable" series.
I will appreciate any feedback, review and/or test results.
-- 
Krzysztof Halasa
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Mar 12, 2:21 pm)
[PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Fri Mar 14, 10:20 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Tue Mar 25, 10:39 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Fri Apr 11, 5:35 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Andrew Morton, (Sat Apr 12, 1:14 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Sat Apr 12, 4:10 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Jeff Garzik, (Sat Apr 12, 4:50 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Sat Apr 12, 3:25 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Sat Apr 12, 4:19 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Fri Apr 18, 11:58 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Fri Apr 18, 6:32 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Mon Apr 21, 11:30 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, James Chapman, (Mon Apr 21, 3:31 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Tue Apr 22, 3:06 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Paul Fulghum, (Tue Apr 22, 5:46 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Tue Apr 22, 6:02 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Paul Fulghum, (Tue Apr 22, 7:52 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Jeff Garzik, (Tue Apr 22, 4:50 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, James Chapman, (Tue Apr 22, 6:23 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Tue Apr 22, 6:51 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Tue Apr 22, 6:05 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Apr 23, 1:02 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Wed Apr 23, 6:49 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Apr 23, 8:48 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Wed Apr 23, 9:08 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Thu Apr 24, 9:12 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Thu Apr 24, 9:30 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Thu Apr 24, 9:39 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Thu Apr 24, 9:55 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Thu Apr 24, 4:46 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Mon May 12, 6:32 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed May 14, 12:17 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed May 14, 8:45 am)
[PATCH] WAN: protect HDLC proto list while insmod/rmmod, Krzysztof Halasa, (Mon May 19, 1:00 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Fri Apr 25, 7:10 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Thu Apr 24, 4:50 pm)
RE: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Waskiewicz Jr, Peter P, (Mon Apr 14, 3:16 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Mon Apr 14, 5:09 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Jeff Garzik, (Tue Mar 25, 10:55 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Tue Mar 25, 11:50 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Mar 26, 7:05 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, David Miller, (Tue Mar 25, 7:14 pm)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Mar 26, 11:01 am)
Re: [PATCH v2] Re: WAN: new PPP code for generic HDLC, Jeff Garzik, (Sat Apr 12, 5:12 am)
[PATCH] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Mar 12, 2:30 pm)
Re: [PATCH] Re: WAN: new PPP code for generic HDLC, Jan Engelhardt, (Wed Mar 12, 3:38 pm)
Re: [PATCH] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Mar 12, 4:10 pm)
Re: [PATCH] Re: WAN: new PPP code for generic HDLC, Jan Engelhardt, (Wed Mar 12, 6:12 pm)
Re: [PATCH] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Fri Mar 14, 10:16 am)
Re: [PATCH] Re: WAN: new PPP code for generic HDLC, Stephen Hemminger, (Wed Mar 12, 2:52 pm)
Re: [PATCH] Re: WAN: new PPP code for generic HDLC, Krzysztof Halasa, (Wed Mar 12, 3:25 pm)