From 44db51a683ce21d344a42e92f128d9470c9fe4db Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Sun, 1 Feb 2009 10:13:18 +0000 Subject: MFC rev. 187387 Remove strict limitation on minimal multilink MRRU. RFC claims that MRRU of 1500 must be supported, but allows smaller values to be negotiated. Enforce specified MRRU for outgoing frames. --- sys/netgraph/ng_ppp.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sys/netgraph/ng_ppp.c b/sys/netgraph/ng_ppp.c index b83b78f191e8..f93703f2e541 100644 --- a/sys/netgraph/ng_ppp.c +++ b/sys/netgraph/ng_ppp.c @@ -128,7 +128,6 @@ MALLOC_DEFINE(M_NETGRAPH_PPP, "netgraph_ppp", "netgraph ppp node"); #define PROT_VJUNCOMP 0x002f /* Multilink PPP definitions */ -#define MP_MIN_MRRU 1500 /* per RFC 1990 */ #define MP_INITIAL_SEQ 0 /* per RFC 1990 */ #define MP_MIN_LINK_MRU 32 @@ -1985,6 +1984,12 @@ ng_ppp_mp_xmit(node_p node, item_p item, uint16_t proto) priv->activeLinks[0], plen)); } + /* Check peer's MRRU for this bundle. */ + if (plen > priv->conf.mrru) { + NG_FREE_ITEM(item); + return (EMSGSIZE); + } + /* Extract mbuf. */ NGI_GET_M(item, m); @@ -2540,10 +2545,6 @@ ng_ppp_config_valid(node_p node, const struct ng_ppp_node_conf *newConf) return (0); } - /* Check bundle parameters */ - if (newConf->bund.enableMultilink && newConf->bund.mrru < MP_MIN_MRRU) - return (0); - /* Disallow changes to multi-link configuration while MP is active */ if (priv->numActiveLinks > 0 && newNumLinksActive > 0) { if (!priv->conf.enableMultilink -- cgit v1.2.3