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

Reply via email to