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

Reply via email to