Hi Steven,

Steven wrote:
> Hi Zhenhua
> 
> Zhang, Zhenhua wrote:
>> Hi Steven,
>> 
>> Steven wrote:
>>> Hi,
>>> 
>>> In function ppp_receive, we first check the protocol type of this
>>> frame like:
>>> 
>>>   guint16 protocol = ppp_proto(buf);
>>> 
>>> and here we assumed the length of the protocol field is 16 bits,
>>> but in RFC 1661, the protocol field should be one or two octets.
>>> 
>>> "The Protocol field is one or two octets, and its value identifies
>>> the datagram encapsulated in the Information field of the packet."
>>> 
>>> why we given the assumption that protocol field is 16 bit length?
>> 
>> First I am not ppp expert. :-).
>> 
>> If you take look at pppd source code, main.c, get_input() also
>> always fetch two bytes 'protocol' for struct protent as well. 
>> 
>> Can you give a case we failed in our ppp stack?
> 
> If you interested in this topic, you can reference RFC 1661 Section
> 6.5, 
> which said
> 
> --------------
> This Configuration Option provides a method to negotiate the
> compression of the PPP Protocol field. By default, all
> implementations MUST transmit packets with two octet PPP Protocol
> fields.
> PPP Protocol field numbers are chosen such that some values may be
> compressed into a single octet form which is clearly
> distinguishable from the two octet form. This Configuration
> Option is sent to inform the peer that the implementation can
> receive such single octet Protocol fields.
> -------------
> 
> In our current source code, because we only negotiate two
> configuration 
> options - REQ_OPTION_MRU and REQ_OPTION_ACCM. so it's okey for our PPP
> stack.

Yes. It's handled in the LCP layer. The code is majorly implemented by Kristen 
and Denis. Maybe they could have more comments on that.

> But some carriers, like China Telecom or Sprint Network etc, will
> support the full configuration
> options(Magic-Number,Protocol-Field-Compression,Address-and-Control-Field-Compression),
> So if PFC option is used ,our code will got wrong with ppp_receive().

Agree, we don't have pcompress, accompression like pppd yet. So patches are 
welcome to improve that part.

Btw, I do see some code related with MAGIC_NUMBER in ppp_lcp.c.

> We should first check if PPP protocol field is compressed or not, and
> then get the right protocol value to form a 16 bits protocol field,
>   and pass this value to the rest functions.
> 
> Because of my company's security policy ,I can't provide a patch for
> this issue. But i can provide a method for doing this. Here it is.

I don't understand why having such policy at all. Your code defintely won't 
leak any IP since we all follow with the standard spec.

> First byte of PPP protocol field may be compressed, if the LS bit is 1
> then this indicates that the upper protocol us compressed, because the
> upper byte should be even, the lower byte should be odd.
> 
>>> In CDMA 2000 environment, just as the Sprint Network, PPP should
>>>   support a compressed protocol field. Is there anything difference
>>> between GSM and CDMA?
>>> 
>>> B.R
>>> 
>>> Steven
> 
> B.R
> 
> Steven
> ---------------------------------------------------------------------------------------------------
> Confidentiality Notice: The information contained in this e-mail and
> any accompanying attachment(s) is intended only for the use of the
> intended recipient and may be confidential and/or privileged of
> Neusoft Corporation, its subsidiaries and/or its affiliates. If any
> reader of this communication is not the intended recipient,
> unauthorized use, forwarding, printing,  storing, disclosure or
> copying is strictly prohibited, and may be unlawful.If you have
> received this communication in error,please immediately notify the
> sender by return e-mail, and delete the original message and all
> copies from your system. Thank you.
> ---------------------------------------------------------------------------------------------------
> 
> _______________________________________________
> ofono mailing list
> ofono@ofono.org
> http://lists.ofono.org/listinfo/ofono



Regards,
Zhenhua
_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to