This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: The DNS negotiation problem on PPP over GPRS connection


Hello, there:
  I am wondering if anyone has seen this problem, but we do see this problem in New Zealand (ISP: ?2Degrees and Vodafone) and USA (ISP: AT&T). The problem is that the ECOS PPP is only negotiating DNS once, and if it is rejected, the DNS negotiation will be turned off and we will never get DNS IP address from PPP connection and the connection is always useless. ?In New Zealand, almost 80% the first DNS request will be rejected and 100% the second DNS request is taken. In USA AT&T, most of time the first DNS request is taken, but some time(rarely), the first request is rejected and the second retry is taken.
  Here is the problem:
  In the ppp/current/src/ipcp.c , ?look at #ifdef CYGOPT_PPP_NS_NEGOTIATE 
  When the IPCP started, by default (in function ipcp_init())
  ?? wo->neg_dns1 = 1; 
  ?? wo->neg_dns2 =1;
  
If the IPCP options are rejected by peer, we then turn off negotiation (in function ?ipcp_rejci()). But the problem is that some of the ISPs (such as 2Degrees in New Zealand and AT&T in USA) are rejecting some other options (e.g. option "Van Jacobson Compressed") along with DNS requests. Without retry, when the DNS options are rejected, we will never get DNS IP address. But it seems that for these ISPs, instead of turning off the DNS negotiation options after rejected, if I put retry (only once), it would always work and we will always get correct DNS IP addresses (both Primary and Secondary).

Does anybody see this issue? Or does anybody have solutions other than retrying? 

Another question is why we repeat sending the same requests? (see below)

Thank you for your attention!

Weili 
  
------------- Following is the detail decoding For New Zealand 2Degrees ISP ------------


1) ff 03 c0 21 01 01 00 14 02 06 00 00 00 00 05 06 05 c3 02 72 07 02 08 02
??? Sent To Peer: 
???? C0 21: LCP Protocol
???? 01?? : code ("Conf Request")
???? 01?? : ID
???? 00 14: Len (including code, ID, len) followed by data
????? ?02?? : (LCP Option: ACCM (Asynchronous Control Character Map))
????? ?06?? : length of ACCM
????? ?00 00 00 00: (ACCM data) 
???? 05?? : (Type: Magic Number)
???? 06?? : length of Magic Number
???? 05 c3 02 72: (the actual magic number)
???? 07?? : Type: Protocol Field Compression (PFC),
???? 02?? : length of PFC
???? 08?? : Type:Address Control Field Compression (ACFC)?? 
???? 02?? : length of ACFC
2) ff 03 c0 21 02 01 00 14 02 06 00 00 00 00 05 06 05 c3 02 72 07 02 08 02
??? received from peer:
???? C0 21: LCP Protocol
???? 02?? : code ("Conf Ack")
???? 01?? : ID
???? 00 14: Len (including code, ID, len) followed by data
????? ?02?? : (Option: ACCM)
????? ?06?? : length
????? ?00 00 00 00: (ACCM data)
???? 05?? : (Type: Magic Number)
???? 06?? : length of Magic Number
???? 05 c3 02 72: (the actual magic number)
???? 07?? : Type: Protocol Field Compression (PFC),
???? 02?? : length of PFC
???? 08?? : Type:Address Control Field Compression (ACFC)?? 
???? 02?? : length of ACFC
3) ff 03 c0 21 01 02 00 1c 01 04 06 40 03 04 c0 23 05 06 d1 fc fe a6 
?? 02 06 00 00 00 00 07 02 08 02
?? Received from peer:
???? C0 21: LCP Protocol
???? 01 ??: code ("Conf Request")
???? 02?? : ID
????? ?00 1c: length
????? ?01?? : LCP option: MRU (Max Receive Unit)
????? ?04?? : length
????? ?06 40: (MRU = 1600 decimal)
????? ?03?? : LCP Option: Authentication Protocol
????? ?04?? : length
????? ?c0 23: (PAP)
????? ?05?? : LCP Option: Magic Number
????? ?06?? : length
????? ?d1 fc fe a6: (actual magic number)
????? ?02?? : LCP Option: ACCM
????? ?06?? : len
????? ?00 00 00 00: ACCM
???? 07?? : Type: Protocol Field Compression (PFC),
???? 02?? : length of PFC
???? 08?? : Type:Address Control Field Compression (ACFC)?? 
??? ?02?? : length of ACFC

4) ff 03 c0 21 02 02 00 1c 01 04 06 40 03 04 c0 23 05 06 d1 fc fe a6 
?? 02 06 00 00 00 00 07 02 08 02
?? Sent to peer:
???? C0 21: LCP Protocol
???? 02?? : code ("Conf Ack")
???? 02?? : ID
????? ?00 1c: length
????? ?01?? : LCP option: MRU (Max Receive Unit)
????? ?04?? : length
????? ?06 40: (MRU = 1600 decimal)
????? ?03?? : LCP Option: Authentication Protocol
????? ?04?? : length
????? ?c0 23: (PAP)
????? ?05?? : LCP Option: Magic Number
????? ?06?? : length
????? ?d1 fc fe a6: (actual magic number)
????? ?02?? : LCP Option: ACCM
????? ?06?? : len
????? ?00 00 00 00: ACCM
???? 07?? : Type: Protocol Field Compression (PFC),
???? 02?? : length of PFC
???? 08?? : Type:Address Control Field Compression (ACFC)?? 
???? 02?? : length of ACFC

5) ff 03 c0 21 09 00 00 08 05 c3 02 72
?? Sent to peer:
?? ??C0 21: LCP Protocol
????? ?09?? : code (Echo Request: optionally sent to test PPP connection)

6) ff 03 c0 23 01 01 00 06 00 00
?? Sent to peer:
???? c0 23: Authentication Protocl (PAP)
???? 01?? : code (Conf Req) 
???? 01?? : ID
???? 00 06: length
???? 00?? : username len 
???? 00?? : password len???? 

7) ff 03 c0 21 0a 00 00 08 d1 fc fe a6
?? received from peer:
?? C0 21: LCP Protocol
?? 0a?? : code (Echo Reply)

8) ff 03 c0 23 02 01 00 27 22 54 54 50 20 43 6f 6d 20 50 50 50 20 2d 20 50 61 73
???? 73 77 6f 72 64 20 56 65 72 69 66 69 65 64 20 4f 4b
?? Received from peer:
?? c0 23: Authentication Protocl (PAP)
?? 02?? : code (Conf Ack)
?? 01?? : ID
?? 00 27: length
?? 22?? : message length
?? data: TTP Com PPP - Password Verified OK

9) ff 03 80 21 01 01 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
?? 83 06 00 00 00 00 
?? Sent to peer:
?? 80 21: PPP IPCP protocol
?? 01?? : code (Conf Req)
?? 01?? : ID
?? 00 1c: length
?? 03?? : Option: IP Address? 
?? 06?? : length
?? 00 00 00 00:
?? 02?? : Option: IP Compression Protocol (IPCP)
?? 06?? : length
?? 00 2d 0f 01: Van Jacobson Compressed TCP/IP
?? 81?? : Option: Pri DNS Server Address (RFC 1877)
?? 06?? : length 
?? 00 00 00 00 (default Pri-DNS IP)
?? 83?? : Option: Secondary DNS Server Address (RFC 1877)
?? 06?? : length
?? 00 00 00 00 (default)

10) ff 03 80 21 01 01 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
???? 83 06 00 00 00 00
??? sent again to peer
11) ff 03 80 21 01 01 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
???? 83 06 00 00 00 00
??? sent again to peer
12) ff 03 80 21 04 01 00 16 02 06 00 2d 0f 01 81 06 00 00 00 00 83 06 00 00 00 00
??? received from peer:
??? 80 21: PPP IPCP protocol
??? 04?? : Conf Reject
??? 01?? : ID
??? 00 16: length
??? 02?? : IP Compression Protocol
??? 06?? : length
??? 00 2d 0f 01: Van Jacobson Compressed TCP/IP 
????? 81?? : Option: Pri DNS Server Address (RFC 1877)
??? 06?? : length 
??? 00 00 00 00 (default Pri-DNS IP)
??? 83?? : Option: Secondary DNS Server Address (RFC 1877)
??? 06?? : length
??? 00 00 00 00 (default)

?-----above is the first reject and following is the retry that I put ?-------

13) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
??? 83 06 00 00 00 00 
????? sent again to peer as 9) above 
14) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
??? 83 06 00 00 00 00
??? sent again!
15) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
??? 83 06 00 00 00 00
????? sent again!
16) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
??? 83 06 00 00 00 00
????? sent again!
17) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
??? 83 06 00 00 00 00
????? sent again!
18) ff 03 80 21 04 02 00 0a 02 06 00 2d 0f 01
??? received from peer
????? 80 21: PPP IPCP protocol
??? 04?? : Conf Reject
????? 02?? :? ID
????? 00 0a: length
????? 02?? : IP Compression Protocol
??? 06?? : length
??? 00 2d 0f 01: Van Jacobson Compressed TCP/IP
19) ff 03 80 21 01 03 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
??? 83 06 00 00 00 00
????? sent to peer:
????? same as 9) above
20) ff 03 80 21 01 01 00 0a 03 06 0a 00 00 01
??? received from peer:
????? 80 21: PPP IPCP protocol
????? 01?? : Conf Req
????? 01?? : ID
????? 00 0a: length
????? 03?? : IP Address
????? 06?? : length
????? 0a 00 00 01: IP Address 10.0.0.1
21) ff 03 80 21 02 01 00 0a 03 06 0a 00 00 01
??? sent to peer: (confirm the IP address)
22) ff 03 80 21 04 02 00 0a 02 06 00 2d 0f 01
??? received from peer: conf-reject as 18)
23) ff 03 80 21 04 03 00 0a 02 06 00 2d 0f 01
??? received from peer: conf-reject as 18)
24) ff 03 80 21 01 04 00 16 03 06 00 00 00 00 81 06 00 00 00 00 83 06 00 00 00 00
??? sent to peer:
????? 80 21: PPP IPCP protocol
????? 01?? : Conf Req
????? 04?? : ID
????? 00 16: length
????? 03?? : Option: IP Address
????? 06?? : len
????? 00 00 00 00: IP address
????? 81?? : Option: Pri DNS Server Address (RFC 1877)
??? 06?? : length 
??? 00 00 00 00 (default Pri-DNS IP)
??? 83?? : Option: Secondary DNS Server Address (RFC 1877)
??? 06?? : length
??? 00 00 00 00 (default)
25) ff 03 80 21 03 04 00 16 03 06 76 94 a0 2a 81 06 76 94 01 0a 83 06 76 94 01 14
??? received from peer:
????? 80 21: PPP IPCP protocol
????? 03?? : ???? Config NAK
????? 04?? : ID
????? 00 16: len
????? 03 06 76 94 a0 2a: IP Address: 118.148.160.42
????? 81 06 76 94 01 0a: Pri DNS IP Address
????? 83 06 76 94 01 14: Second DNS IP Address

26) ff 03 80 21 01 05 00 16 03 06 76 94 a0 2a 81 06 76 94 01 0a 83 06 76 94 01 14
??? sent to peer
????? 80 21: PPP IPCP protocol
????? 01?? : ???? Config Req
????? 04?? : ID
????? 00 16: len
????? 03 06 76 94 a0 2a: IP Address: 118.148.160.42
????? 81 06 76 94 01 0a: Pri DNS IP Address
????? 83 06 76 94 01 14: Second DNS IP Address


27) ff 03 80 21 02 05 00 16 03 06 76 94 a0 2a 81 06 76 94 01 0a 83 06 76 94 01 14
??? received from peer
????? 80 21: PPP IPCP protocol
????? 03?? : ???? Config Ack
????? 02?? : ID
????? 00 16: len
????? 03 06 76 94 a0 2a: IP Address: 118.148.160.42
????? 81 06 76 94 01 0a: Pri DNS IP Address
????? 83 06 76 94 01 14: Second DNS IP Address

--------------?? End --- 

  


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]