Home | History | Annotate | Download | only in net
History log of /src/sys/net/if_spppvar.h
RevisionDateAuthorComments
 1.42  01-Jun-2021  yamaguchi Drop the Open event of LCP to stop the interface
even a reconnection is scheduled

The queue for events in if_spppsubr.c is not possible
to enqueue the same event. So, The close event caused
while a close event and open event are enqueued for
reconnection is not possible to stop interface.
To solve this issue, The open event after
"ifconfig pppoe? down" is dropped.
 1.41  01-Jun-2021  yamaguchi remove PP_CISCO that was used in obsoleted drivers e.g. lmc(4)
 1.40  01-Jun-2021  yamaguchi Fix not to do if_down() before reconnect

Almost network interface do not use if_down() even when there is no
connectivity. So, pppoe(4) is also made be not used it.
This behavior can be rollbacked by SPPP_IFDOWN_RECONNECT option.
 1.39  01-Jun-2021  yamaguchi restart LCP when loopback packets are detected

In if_spppsubr.c down and up do not mean that LCP is stopping
or running, but mean that the lower layer of LCP is up or down.
And, restarting of LCP is had to use close event and open event.
 1.38  14-May-2021  yamaguchi Add a parameter to change keepalive interval in each PPPoE I/F
 1.37  11-May-2021  yamaguchi Added ioctl commands for configuring NCP of pppoe(4)
 1.36  11-May-2021  yamaguchi back to r1.34 because of mistake of commit log
 1.35  11-May-2021  yamaguchi Added keywords that are ipcp, noipcp, ipv6cp, noipv6cp
for configuring NCP
 1.34  28-Apr-2021  yamaguchi branches: 1.34.2;
Move paese of conf-req, conf-nak and conf-rej into workqueue
from softint context

When the pases were processed in softint, the state machine
in if_spppsubr.c had been broken by simultaneous events
on rare occasions.

Example:
1. Do ifconfig pppoe* up
- lcp open event is enqueued to workqueue
2. Receive conf-ack, and parse the packet
- save mru to sp->lcp.their_mru
- lcp RCR+ event is enqueued to workqueue
3. Process lcp open event
- initialize data including sp->lcp.their_mru
4. Process lcp RCR+ event
- Use sp->lcp.their_mru
- but it was initialized
 1.33  16-Apr-2021  yamaguchi branches: 1.33.2;
Added missing locking order between sppp and IFNET_LOCK
 1.32  25-Nov-2020  yamaguchi branches: 1.32.2;
Add commands to refer params of control protocols in if_spppsubr.c

reviewed by knakahara@n.o.
 1.31  25-Nov-2020  yamaguchi Reconnect when a down event caused by tlf caught
 1.30  25-Nov-2020  yamaguchi Update ip addresses in the workqueue for control protocols

reviewed by knakahara@n.o.
 1.29  25-Nov-2020  yamaguchi implement auth protocols on the state-machine of control protocols

reviewed by knakahara@n.o.
 1.28  25-Nov-2020  yamaguchi call if_down() in workqueue instead of callout(9)
 1.27  25-Nov-2020  yamaguchi Change a state of control protocol in thread context

reviewed by knakahara@n.o.
 1.26  25-Nov-2020  yamaguchi Add a function for RCR event
 1.25  25-Nov-2020  yamaguchi Add a structure for params related to control protocols
 1.24  05-Oct-2020  roy branches: 1.24.2;
ppp: Remove media

There is none after all.
Applications should be using ifi_link_state and not checking media.
 1.23  04-Apr-2020  is Multilink PPP: sanity check of option values, storage of remote MRRU.
 1.22  12-Oct-2017  knakahara branches: 1.22.4; 1.22.12;
Add a locking notes for if_spppsubr
 1.21  12-Oct-2017  knakahara sppp_lock is changed from mutex to rwlock now. Contributed by s-yamaguchi@IIJ.

Add locking notes later.
 1.20  13-Dec-2016  knakahara branches: 1.20.8;
MP-safe pppoe(4).

Nearly all parts is implemented by Shoichi YAMAGUCHI<s-yamaguchi@IIJ>, thanks.
 1.19  01-Dec-2016  knakahara fix two races between set_ip_addrs and clear_ip_addrs race.

(1) if set_ip_addrs and clear_ip_addrs run parallel, they can parallel call
IN_ADDRHASH_WRITER_REMOVE to the same ifa.
(2) if set_ip_addrs's workqueue is separated from clear_ip_addrs's one,
the workers can run in reverse order of enqueued.
 1.18  25-Nov-2016  knakahara make workqueue sppp_{set,clear}_ip_addrs to be able to call pserialize_perform.
 1.17  14-Sep-2016  roy Add interface media for sppp consumers.
While there is no actual media to select,
the ioctl is used to query link status from userland.
 1.16  05-Oct-2009  dyoung branches: 1.16.22; 1.16.40; 1.16.44;
Replace u_quad_t with uint64_t. u_quad_t is just a typedef for
uint64_t, so no ABI/API breakage will result from this change.
 1.15  22-Aug-2008  martin Backout previous/restore initial fix for PR kern/39280.
The later changes were only cosmetic, cause problems in IPv6-only-
connections (reported by Wolfgang Solfrank in private mail), as well
as reintroducing the original bug again.
 1.14  05-Aug-2008  degroote We have a dummy entry for IPV6CP even if the non-INET6 case.
So always reference IDX_IPV6CP
Fix build of if_spppsubr.c if INET6 is not defined.
 1.13  04-Aug-2008  christos keep the loop, but arrange IDX_COUNT to be correct.
 1.12  20-Feb-2008  matt branches: 1.12.10; 1.12.16;
s/u_\(int[0-9]*_t\)/u\1/g
(change u_int*_t to uint*_t)
 1.11  10-Dec-2005  elad branches: 1.11.46;
Multiple inclusion protection, as suggested by christos@ on tech-kern@
few days ago.
 1.10  03-Sep-2003  martin branches: 1.10.16;
Rearange dead link detection slightly:
As long as we receive data from the peer, don't worry. When we have not
received anything within the "max_noreceive" period, we start sending LCP
echo requests and count them, until we receive an answer (or some data)
or the "maxalive" count of not answered echo requests is reached.
All this is checked at a global 10 seconds interval for all interfaces.
The "max_noreceive" period and the "maxalive" count are configurable per
interface.
 1.9  09-Jul-2003  martin We should use IFQ_DEQUEUE to get packets from the send queue, not IF_DEQUEUE.
Hopefully this will fix ALTQ for ISDN and PPPoE interfaces.

While there remove an unsued function which contained dubious code
(accessing interface queue internals w/o the proper macros).
 1.8  08-Jul-2003  itojun prototype must not have variable name
 1.7  28-Jan-2003  tron branches: 1.7.2;
Use MRU negotiated with remote system as MTU. This fixes PR kern/18850
by Curt Sampson.
 1.6  22-Jan-2003  jmmv Fix typo: realy -> really. Okay'ed by wiz.
 1.5  28-Jul-2002  christos Don't throw away the name and the secret lengths. This eliminates all the
strlen() calls, and there was a whole bunch of them.
 1.4  02-Mar-2002  martin branches: 1.4.6; 1.4.8;
Add support to query the peer for DNS addreses when negotiating IPCP.
Add ioctls to retrieve the results.

While here remove a malloc()/free() of an unused buffer.
 1.3  07-Jan-2002  martin branches: 1.3.2; 1.3.4;
Implement a retry counter for failed authorizations and limit it to
a configurable maximum (default: 5).

Some ISPs shut down accounts (at least temporarily) after to many bad
retries. This hit me recently due to a stupid pilot error and the fast
retry rate.
 1.2  06-Jan-2002  martin Implement an activity timestamp, recording the last time payload data
passed through.

Implement optional idle timeout.
 1.1  05-Jan-2002  martin Ooops, forgot to commit this file when doing the great if_spppsubr.c
rotottil. Thanks to Launey Thomas for pointing this out.
 1.3.4.4  01-Aug-2002  nathanw Catch up to -current.
 1.3.4.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.3.4.2  11-Jan-2002  nathanw More catchup.
 1.3.4.1  07-Jan-2002  nathanw file if_spppvar.h was added on branch nathanw_sa on 2002-01-11 23:39:45 +0000
 1.3.2.4  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.2.3  16-Mar-2002  jdolecek Catch up with -current.
 1.3.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.1  07-Jan-2002  thorpej file if_spppvar.h was added on branch kqueue on 2002-01-10 20:02:13 +0000
 1.4.8.3  28-Jan-2003  jmc Pullup revisions 1.62-1.63 (requested by tron in ticket #1133)
Use MRU negotiated with remote system as MTU. Fixes PR#18850.
 1.4.8.2  26-Jan-2003  jmc Pullup revisions 1.5-1.6 (requested by jmmv in ticket #1102)
Fix typo: realy -> really. Okay'ed by wiz.
 1.4.8.1  17-Aug-2002  lukem Pull up revision 1.5 (requested by groo in ticket #669):
Don't throw away the name and the secret lengths. This eliminates all the
strlen() calls, and there was a whole bunch of them.
 1.4.6.1  29-Aug-2002  gehenna catch up with -current.
 1.7.2.4  11-Dec-2005  christos Sync with head.
 1.7.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.7.2.1  03-Aug-2004  skrll Sync with HEAD
 1.10.16.2  27-Feb-2008  yamt sync with head.
 1.10.16.1  21-Jun-2006  yamt sync with head.
 1.11.46.1  23-Mar-2008  matt sync with HEAD
 1.12.16.1  19-Oct-2008  haad Sync with HEAD.
 1.12.10.1  11-Mar-2010  yamt sync with head
 1.16.44.2  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.16.44.1  04-Nov-2016  pgoyette Sync with HEAD
 1.16.40.3  05-Feb-2017  skrll Sync with HEAD
 1.16.40.2  05-Dec-2016  skrll Sync with HEAD
 1.16.40.1  05-Oct-2016  skrll Sync with HEAD
 1.16.22.1  03-Dec-2017  jdolecek update from HEAD
 1.20.8.1  02-Nov-2017  snj Pull up following revision(s) (requested by knakahara in ticket #332):
sys/net/if_pppoe.c: 1.127-1.128
sys/net/if_pppoe.h: 1.15
sys/net/if_spppsubr.c: 1.170-1.171
sys/net/if_spppvar.h: 1.21-1.22
Integrate two locks used to protect PPPoE softc. Contributed by s-yamaguchi@IIJ.
PPPOE_SESSION_LOCK protects variables used in PPP packet
processing, on the other hand PPPOE_PARAM_LOCK protects
the other variables used to establish a PPPoE session id.
Those locks isn't acquired in the same time because the
PPP packet processing doesn't work without PPPoE session id.
By the reason, the locks can be integrated into PPPOE_LOCK.
Add locking notes later.
--
sppp_lock is changed from mutex to rwlock now. Contributed by s-yamaguchi@IIJ.
Add locking notes later.
--
Add a locking notes for if_pppoe
--
Add a locking notes for if_spppsubr
--
fix no INET6 build.
 1.22.12.3  10-Apr-2020  is first part of defragmentation code. No dropping/sequence error statistics
yet, and no MRRU negotiation so not active.
 1.22.12.2  07-Apr-2020  is fix typo in comment.
 1.22.12.1  07-Apr-2020  is Multilink PPP: sanity check of option values, storage of remote MRRU.
 1.22.4.1  08-Apr-2020  martin Merge changes from current as of 20200406
 1.24.2.1  14-Dec-2020  thorpej Sync w/ HEAD.
 1.32.2.1  17-Apr-2021  thorpej Sync with HEAD.
 1.33.2.2  17-Jun-2021  thorpej Sync w/ HEAD.
 1.33.2.1  13-May-2021  thorpej Sync with HEAD.
 1.34.2.1  31-May-2021  cjep sync with head

RSS XML Feed