o Don't go multilink if the peer hasn't asked for it
o Don't go multilink if the peer hasn't agreed o When negotiating multilink, don't try to push the peers MRU up according to our `set mtu' setting. Instead, accept whatever MRU they want and push their MRRU up instead. o When *not* negotiating multilink, REJ short sequence number REQs.
This commit is contained in:
parent
49052c9523
commit
dbf60d74f8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/cvs2svn/branches/MP/; revision=35404
@ -23,7 +23,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: datalink.c,v 1.1.2.42 1998/04/19 15:24:39 brian Exp $
|
||||
* $Id: datalink.c,v 1.1.2.43 1998/04/23 03:22:48 brian Exp $
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -444,7 +444,7 @@ datalink_AuthOk(struct datalink *dl)
|
||||
{
|
||||
/* XXX: Connect to another ppp instance HERE */
|
||||
|
||||
if (dl->physical->link.lcp.want_mrru) {
|
||||
if (dl->physical->link.lcp.want_mrru && dl->physical->link.lcp.his_mrru) {
|
||||
if (!mp_Up(&dl->bundle->ncp.mp,
|
||||
dl->physical->link.lcp.want_mrru,
|
||||
dl->physical->link.lcp.his_mrru,
|
||||
|
@ -17,7 +17,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: lcp.c,v 1.55.2.43 1998/04/19 23:08:30 brian Exp $
|
||||
* $Id: lcp.c,v 1.55.2.44 1998/04/23 03:22:55 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
* o Limit data field length by MRU
|
||||
@ -464,6 +464,7 @@ LcpDecodeConfig(struct fsm *fp, u_char *cp, int plen, int mode_type,
|
||||
break;
|
||||
case MODE_REJ:
|
||||
lcp->his_reject |= (1 << type);
|
||||
lcp->want_mrru = 0; /* Ah well, no multilink :-( */
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -476,7 +477,7 @@ LcpDecodeConfig(struct fsm *fp, u_char *cp, int plen, int mode_type,
|
||||
switch (mode_type) {
|
||||
case MODE_REQ:
|
||||
mtu = lcp->fsm.bundle->cfg.mtu;
|
||||
if (mru < MIN_MRU || mru < mtu) {
|
||||
if (mru < MIN_MRU || (!lcp->want_mrru && mru < mtu)) {
|
||||
/* Push him up to MTU or MIN_MRU */
|
||||
lcp->his_mru = mru < mtu ? mtu : MIN_MRU;
|
||||
*sp = htons((u_short)lcp->his_mru);
|
||||
@ -758,7 +759,7 @@ LcpDecodeConfig(struct fsm *fp, u_char *cp, int plen, int mode_type,
|
||||
|
||||
switch (mode_type) {
|
||||
case MODE_REQ:
|
||||
if (IsAccepted(mp->cfg.shortseq)) {
|
||||
if (lcp->want_mrru && IsAccepted(mp->cfg.shortseq)) {
|
||||
lcp->his_shortseq = 1;
|
||||
memcpy(dec->ackend, cp, length);
|
||||
dec->ackend += length;
|
||||
|
Loading…
Reference in New Issue
Block a user