History log of /haiku/src/add-ons/kernel/network/ppp/shared/libkernelppp/KPPPLayer.cpp
Revision Date Author Comments
# e3724c38 04-Jan-2014 mshlyn <linlongzhou@163.com>

PPP: Port to the new stack.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

This is a squash of the 42 commits by @mshlyn, as I couldn't find a
way to break them into logical chunks. I did not include these in the build,
as it appears that they only partially work anyway, and much more cleanup is
still needed. However, this is a huge improvement on what was in the tree
before, which looked horrendous and didn't even compile (as it was designed
for the old stack).

Mostly fixes #812.


# fc1cf1a3 26-Mar-2007 Axel Dörfler <axeld@pinc-software.de>

Style cleanup, patch by Vasilis Kaoutsis - thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abdb7d1a 10-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

- updated email-address
- removed profiles, ppp_up, and some TODOs
- simplified KPPPReportManager and reports API, KPPPInterface::Up()+Down(), and PPPInterfaceListener (also removed some features from the last one)
- KPPPInterface now sends the last PPP_CONNECTION_REPORT message to every newly registered report receiver
- added net_server to the build, but removed old net_server testing-stuff

all changes are completely untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14338 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84b580c4 20-Nov-2004 Waldemar Kornewald <wkornew@nowhere.fake>

DialOnDemand will be handled differently. Instead of setting it manually in the prefs we have one default interface. Still not finished.
Moved ppp_up code to KPPPManager.
Experimenting with IPCP DialOnDemand support.
Many changes I do not remember.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f3689bb 01-Jun-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Finished doxygen comments for the PPP API.
Minor changes to simplify PAP authenticator.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7730 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13013331 19-May-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added *many* Doxygen comments. More will follow. Documentation is no fun at all, really.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abf44d1a 02-Mar-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Some changes I did a long time ago. I think this also contains a fix for the last dead-lock I could find.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a483e4d 06-Feb-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Fixed a couple of possible dead-locks.
Fixed some minor bugs.
PPPoE: added experimental support for AccessConcentrator and ServiceName settings.
Changed libppp to import strlcat.c from libroot instead of duplicating code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6511 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9ad2df8 24-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added profile and interface naming support.
Added 'K' prefix to all kernel classes to resolve naming issue with doxygen.
Began some small doxygen comments.
Minor changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cfb4dca 19-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Replaced all printf and spawn_thread functions with their kernel counterparts.
IPCP: changed route initialization a little bit. Still cannot remove default route correctly.
Renamed interface_id to ppp_interface_id.
Some minor changes.
Worked on libppp.a (userland PPP library).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86c13dda 05-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Yeah! It finally works! The default route was missing, that was the only problem!
I established a connection with PPPoE and pinged goole and osnews. Net+ loaded half of www.osnews.com but then crashed because of a bug in our DNS resolver.
There is one more bug to fix: our core stack module does not remove the routes when an interface is deleted.
Thus, there will always remain the route(s) from the last connection(s).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5910 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8dad9b1e 27-Dec-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Added modem driver (completely untested, currently no support for settings speed because modem API is missing).
Some minor changes.
Added TODO file to almost all modules.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e0ad752 07-Nov-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Fixed many bugs and added debug output.
You can now successfully (dis-)connect to(/from) a PPP server using the PPPoE device module.
To be useful we need the PAP and IPCP modules (in the works).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5276 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7452421 23-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Mostly fixes and smaller API changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5119 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92a8026e 02-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

As the netstack has a bug I cannot work on the interface module before this is fixed. So I changed the API of the libkernelppp.a (although, this was planned for a later release).
PPPEncapsulator was removed. PPPProtocol is now a protocol and an encapsulator.
PPPDevice, PPPProtocol, and PPPInterface derive from PPPLayer. This base class simplifies the packet passing process and gives PPPDevice more flexibility as it now can add layers between itself and PPPInterface (which was not possible before). This feature will probably be used by the HDLC framing module.
Also, PPPProtocol will always send to the next layer which might either be another protocol, an encapsulator protocol, or the PPPInterface. No distinction is necessary anymore.

This all reduced the list template usage and made some methods simpler.
With this step I could reduce the size of the libkernelppp.a binary from >200K to 143K.

Now, I will go hunting bugs! :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4928 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc1cf1a3d24bc28201c314c56be8d2816550f3f6 26-Mar-2007 Axel Dörfler <axeld@pinc-software.de>

Style cleanup, patch by Vasilis Kaoutsis - thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abdb7d1abbf1686ecb8f7132e576d332f6cc01ed 10-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

- updated email-address
- removed profiles, ppp_up, and some TODOs
- simplified KPPPReportManager and reports API, KPPPInterface::Up()+Down(), and PPPInterfaceListener (also removed some features from the last one)
- KPPPInterface now sends the last PPP_CONNECTION_REPORT message to every newly registered report receiver
- added net_server to the build, but removed old net_server testing-stuff

all changes are completely untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14338 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84b580c425e26370792255dbb5e1879250434372 20-Nov-2004 Waldemar Kornewald <wkornew@nowhere.fake>

DialOnDemand will be handled differently. Instead of setting it manually in the prefs we have one default interface. Still not finished.
Moved ppp_up code to KPPPManager.
Experimenting with IPCP DialOnDemand support.
Many changes I do not remember.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f3689bb79f1fa6e5bf21e925e17463016c3372e 01-Jun-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Finished doxygen comments for the PPP API.
Minor changes to simplify PAP authenticator.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7730 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13013331d0ead841705a7f4e458b972c76aee627 19-May-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added *many* Doxygen comments. More will follow. Documentation is no fun at all, really.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abf44d1a2b878b33fcf39a6cf0d0b1625d78edfe 02-Mar-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Some changes I did a long time ago. I think this also contains a fix for the last dead-lock I could find.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a483e4d35557e2c0803bc8a8b091beaffdc8d26 06-Feb-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Fixed a couple of possible dead-locks.
Fixed some minor bugs.
PPPoE: added experimental support for AccessConcentrator and ServiceName settings.
Changed libppp to import strlcat.c from libroot instead of duplicating code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6511 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9ad2df864f15e206e629cc58bc9d4deb2935f12 24-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added profile and interface naming support.
Added 'K' prefix to all kernel classes to resolve naming issue with doxygen.
Began some small doxygen comments.
Minor changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cfb4dcac25af9c27f1b69ea71ba47d12e1c64fb 19-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Replaced all printf and spawn_thread functions with their kernel counterparts.
IPCP: changed route initialization a little bit. Still cannot remove default route correctly.
Renamed interface_id to ppp_interface_id.
Some minor changes.
Worked on libppp.a (userland PPP library).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86c13dda5a831b614ef044139c2e89f4f3352621 05-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Yeah! It finally works! The default route was missing, that was the only problem!
I established a connection with PPPoE and pinged goole and osnews. Net+ loaded half of www.osnews.com but then crashed because of a bug in our DNS resolver.
There is one more bug to fix: our core stack module does not remove the routes when an interface is deleted.
Thus, there will always remain the route(s) from the last connection(s).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5910 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8dad9b1eb24c679b79309f1380a91eb8c0246de5 27-Dec-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Added modem driver (completely untested, currently no support for settings speed because modem API is missing).
Some minor changes.
Added TODO file to almost all modules.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e0ad75221194c01b01ad7f13afe0a7aa6256a83 07-Nov-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Fixed many bugs and added debug output.
You can now successfully (dis-)connect to(/from) a PPP server using the PPPoE device module.
To be useful we need the PAP and IPCP modules (in the works).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5276 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7452421930cdbbd8c549e77bbedbdc52472c78d 23-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Mostly fixes and smaller API changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5119 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92a8026e02acf7895727ebda87c3bebacd3fa082 02-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

As the netstack has a bug I cannot work on the interface module before this is fixed. So I changed the API of the libkernelppp.a (although, this was planned for a later release).
PPPEncapsulator was removed. PPPProtocol is now a protocol and an encapsulator.
PPPDevice, PPPProtocol, and PPPInterface derive from PPPLayer. This base class simplifies the packet passing process and gives PPPDevice more flexibility as it now can add layers between itself and PPPInterface (which was not possible before). This feature will probably be used by the HDLC framing module.
Also, PPPProtocol will always send to the next layer which might either be another protocol, an encapsulator protocol, or the PPPInterface. No distinction is necessary anymore.

This all reduced the list template usage and made some methods simpler.
With this step I could reduce the size of the libkernelppp.a binary from >200K to 143K.

Now, I will go hunting bugs! :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4928 a95241bf-73f2-0310-859d-f6bbb57e9c96