Hi,
I'd like to get some help determining if this is a problem per se. In
/sys/net/if_spppsubr.c lines 1323-1327 the nmagic is assembled and checked
against sp->lcp.magic, and if it doesn't match then it does something weird.
It resets the sp->pp_alivecnt to 0. This to me does nothing much other than
resetting a counter (which only tears down a connection if it has achieved
MAXALIVECNT.
At first I thought it should tear down the link but RFC 1661 says that this
is the pessimistic approach around page 46.
The RFC is a little vague, because it leaves this as unspecified on page
47:
---
Procedures for recovery from either case are unspecified, and may
vary from implementation to implementation. A somewhat
pessimistic procedure is to assume a LCP Down event. A further
Open event will begin the process of re-establishing the link,
which can't complete until the looped-back condition is
terminated, and Magic-Numbers are successfully negotiated. A more
optimistic procedure (in the case of a looped-back link) is to
begin transmitting LCP Echo-Request packets until an appropriate
Echo-Reply is received, indicating a termination of the looped-
back condition.
---
I'm shrugging my shoulders as I see an unspecified area and it's not
really handled. Is no code better than some unspecified code? Is any code
better than leaving it alone? In my scenario I only looked at the code,
I have not tested anything, to see if its a detriment.
I have checked FreeBSD source and it also does this in head.
Regards,
-peter