12345678910111213141516171819202122232425 |
- pppd: Cap MTU to the user configured value
- This patchs caps the calculated MTU value in lcp.c to the user specified "mru"
- option value. Without this patch pppd would advertise a different MTU value
- compared to what is set on the local interface in some cases.
- Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- --- a/pppd/lcp.c
- +++ b/pppd/lcp.c
- @@ -1917,12 +1917,12 @@ lcp_up(f)
- * the interface MTU is set to the lowest of that, the
- * MTU we want to use, and our link MRU.
- */
- - mtu = ho->neg_mru? ho->mru: PPP_MRU;
- + mtu = MIN(ho->neg_mru? ho->mru: PPP_MRU, ao->mru);
- mru = go->neg_mru? MAX(wo->mru, go->mru): PPP_MRU;
- #ifdef HAVE_MULTILINK
- if (!(multilink && go->neg_mrru && ho->neg_mrru))
- #endif /* HAVE_MULTILINK */
- - netif_set_mtu(f->unit, MIN(MIN(mtu, mru), ao->mru));
- + netif_set_mtu(f->unit, MIN(mtu, mru));
- ppp_send_config(f->unit, mtu,
- (ho->neg_asyncmap? ho->asyncmap: 0xffffffff),
- ho->neg_pcompression, ho->neg_accompression);
|