Hi Sergei, > So far, all modems on this planet have honored the default properly... > > Sorry for my misunderstanding. I should have read the RFC better but this aspect > is defined > properly only in the following clause - > "TheConfiguration Option is used to inform the peer which control > > characters MUST remain mapped when the peer sends them." > > So I have managed to find this after your message. Thank you. > > So you have two options for fixing this: >    - Make GAtPPP negotiate a default ACCM in all cases > >    - Override the negotiated ACCM (using g_at_hdlc_set_recv_accm for your > particular modem. > > I think that this modem is buggy as you have clearly shown. I agree that it is > not a good idea to > do something which does not follow the RFCs fine. But, I feel that the default I don't remember why we chose not to negotiate the RX ACCM. Things may have worked wonderfully with the defaults, so maybe we just decided not to touch it. > value for ACCM > is not that one we should use. Excuse me if I am too direct here, I am not an > expert in this field > but I think it is better for DTE to send a configuration request with ACCM = > 0x00000000 > as pppd does because this allows us to send more information in the same number > of bytes. > Would you agree? If not I will override the negotiated ACCM, if it is left I think that makes sense. > default, for this > chinese modem because I do not feel that they could update the firmware to > fulfill the RFC > requirements in a reasonable amount of time if they even would. I do not think > that they > would even find this necessary if I had told them. Well, it isn't a 'requirement' to use the defaults. What happened in this particular case is that we didn't explicitly tell the modem side what RX ACCM we want, and the modem firmware didn't use the defined default values. I think it should be safe for us to use an ACCM of 0 instead of the RFC default. But just in case, we should probably provide a way for the driver to override it if needed. So what I would do is: - Set REQ_OPTION_ACCM in the lcp init somewhere. Set the initial value to be 0 as you suggest. - Add g_at_ppp_set_accm() in order to allow drivers to provide a custom ACCM to negotiate, if needed. Regards, -Denis