[PATCH] ppp: implement MRU option

Kristen Carlson Accardi kristen at linux.intel.com
Thu Apr 22 13:40:07 PDT 2010


On Thu, 22 Apr 2010 15:16:58 -0500
Denis Kenzior <denkenz at gmail.com> wrote:

> Hi Kristen,
> 
> > @@ -80,7 +88,7 @@ static gboolean ppp_net_callback(GIOChannel *channel,
> >  GIOCondition cond,
> > 
> >  	if (cond & G_IO_IN) {
> >  		/* leave space to add PPP protocol field */
> > -		status = g_io_channel_read_chars(channel, buf + 2, MAX_PACKET,
> > +		status = g_io_channel_read_chars(channel, buf + 2, net->mtu,
> >  				&bytes_read, &error);
> >  		if (bytes_read > 0) {
> >  			ppp->proto = htons(PPP_IP_PROTO);
> 
> So I actually have a concern here.  Quoting RFC 1332 Section 2.1:
> "Exactly one IP packet is encapsulated in the Information field of PPP
>    Data Link Layer frames where the Protocol field indicates type hex
>    0021 (Internet Protocol)."
> 
> However, you're not changing the physical MTU of the TUN/TAP interface, so in 
> effect you are mangling the packets that are larger than net->mtu.  These 
> packets will most likely simply be discarded leading to lots of fun.

We can add an ioctl to change the MTU during ppp_net_set_mtu(), which
should hopefully resolve this.


More information about the ofono mailing list