Added log messages for LCP Identification, Time-Remaining, and other
authorJames Carlson <carlsonj@workingcode.com>
Sun, 14 Nov 2004 22:53:42 +0000 (22:53 +0000)
committerJames Carlson <carlsonj@workingcode.com>
Sun, 14 Nov 2004 22:53:42 +0000 (22:53 +0000)
more obscure protocols.

pppd/lcp.c
pppd/lcp.h
pppd/main.c
pppd/pppd.h

index 23f69fe5f0360a10f7c1b34a16b90da19037cf4a..e70dcec525507b9ddcfba06542941f8bcca24619 100644 (file)
@@ -40,7 +40,7 @@
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define RCSID  "$Id: lcp.c,v 1.74 2004/11/13 02:28:15 paulus Exp $"
+#define RCSID  "$Id: lcp.c,v 1.75 2004/11/14 22:53:42 carlsonj Exp $"
 
 /*
  * TODO:
@@ -494,7 +494,6 @@ lcp_input(unit, p, len)
     fsm_input(f, p, len);
 }
 
-
 /*
  * lcp_extcode - Handle a LCP-specific code.
  */
@@ -525,6 +524,8 @@ lcp_extcode(f, code, id, inp, len)
        break;
 
     case DISCREQ:
+    case IDENTIF:
+    case TIMEREM:
        break;
 
     default:
@@ -548,6 +549,7 @@ lcp_rprotrej(f, inp, len)
     int i;
     struct protent *protp;
     u_short prot;
+    const char *pname;
 
     if (len < 2) {
        LCPDEBUG(("lcp_rprotrej: Rcvd short Protocol-Reject packet!"));
@@ -565,16 +567,27 @@ lcp_rprotrej(f, inp, len)
        return;
     }
 
+    pname = protocol_name(prot);
+
     /*
      * Upcall the proper Protocol-Reject routine.
      */
     for (i = 0; (protp = protocols[i]) != NULL; ++i)
        if (protp->protocol == prot && protp->enabled_flag) {
+           if (pname == NULL)
+               dbglog("Protocol-Reject for 0x%x received", prot);
+           else
+               dbglog("Protocol-Reject for '%s' (0x%x) received", pname,
+                      prot);
            (*protp->protrej)(f->unit);
            return;
        }
 
-    warn("Protocol-Reject for unsupported protocol 0x%x", prot);
+    if (pname == NULL)
+       warn("Protocol-Reject for unsupported protocol 0x%x", prot);
+    else
+       warn("Protocol-Reject for unsupported protocol '%s' (0x%x)", pname,
+            prot);
 }
 
 
@@ -1964,7 +1977,8 @@ lcp_finished(f)
 static char *lcp_codenames[] = {
     "ConfReq", "ConfAck", "ConfNak", "ConfRej",
     "TermReq", "TermAck", "CodeRej", "ProtRej",
-    "EchoReq", "EchoRep", "DiscReq"
+    "EchoReq", "EchoRep", "DiscReq", "Ident",
+    "TimeRem"
 };
 
 static int
@@ -2168,10 +2182,31 @@ lcp_printpkt(p, plen, printer, arg)
        if (len >= 4) {
            GETLONG(cilong, p);
            printer(arg, " magic=0x%x", cilong);
-           p += 4;
            len -= 4;
        }
        break;
+
+    case IDENTIF:
+    case TIMEREM:
+       if (len >= 4) {
+           GETLONG(cilong, p);
+           printer(arg, " magic=0x%x", cilong);
+           len -= 4;
+       }
+       if (code == TIMEREM) {
+           if (len < 4)
+               break;
+           GETLONG(cilong, p);
+           printer(arg, " seconds=%u", cilong);
+           len -= 4;
+       }
+       if (len > 0) {
+           printer(arg, " ");
+           print_string((char *)p, len, printer, arg);
+           p += len;
+           len = 0;
+       }
+       break;
     }
 
     /* print the rest of the bytes in the packet */
index 23f3c849034788e0e0a2ec493968f5c153d76526..d5f8aee04353a961b9c7709a3f75d50f6e9ebde6 100644 (file)
  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: lcp.h,v 1.19 2002/12/04 23:03:32 paulus Exp $
+ * $Id: lcp.h,v 1.20 2004/11/14 22:53:42 carlsonj Exp $
  */
 
 /*
  * Options.
  */
+#define CI_VENDOR      0       /* Vendor Specific */
 #define CI_MRU         1       /* Maximum Receive Unit */
 #define CI_ASYNCMAP    2       /* Async Control Character Map */
 #define CI_AUTHTYPE    3       /* Authentication Type */
 #define CI_MAGICNUMBER 5       /* Magic Number */
 #define CI_PCOMPRESSION        7       /* Protocol Field Compression */
 #define CI_ACCOMPRESSION 8     /* Address/Control Field Compression */
+#define CI_FCSALTERN   9       /* FCS-Alternatives */
+#define CI_SDP         10      /* Self-Describing-Pad */
+#define CI_NUMBERED    11      /* Numbered-Mode */
 #define CI_CALLBACK    13      /* callback */
 #define CI_MRRU                17      /* max reconstructed receive unit; multilink */
 #define CI_SSNHF       18      /* short sequence numbers for multilink */
 #define CI_EPDISC      19      /* endpoint discriminator */
+#define CI_MPPLUS      22      /* Multi-Link-Plus-Procedure */
+#define CI_LDISC       23      /* Link-Discriminator */
+#define CI_LCPAUTH     24      /* LCP Authentication */
+#define CI_COBS                25      /* Consistent Overhead Byte Stuffing */
+#define CI_PREFELIS    26      /* Prefix Elision */
+#define CI_MPHDRFMT    27      /* MP Header Format */
+#define CI_I18N                28      /* Internationalization */
+#define CI_SDL         29      /* Simple Data Link */
 
 /*
- * LCP-specific packet types.
+ * LCP-specific packet types (code numbers).
  */
 #define PROTREJ                8       /* Protocol Reject */
 #define ECHOREQ                9       /* Echo Request */
 #define ECHOREP                10      /* Echo Reply */
 #define DISCREQ                11      /* Discard Request */
+#define IDENTIF                12      /* Identification */
+#define TIMEREM                13      /* Time Remaining */
+
+/* Value used as data for CI_CALLBACK option */
 #define CBCP_OPT       6       /* Use callback control protocol */
 
 /*
index 65a8877c6f276da8a96f0a96200aef54ecfd1daa..f136a281291b297e8b81ace181b57397f0764d2a 100644 (file)
@@ -66,7 +66,7 @@
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define RCSID  "$Id: main.c,v 1.148 2004/11/13 12:05:48 paulus Exp $"
+#define RCSID  "$Id: main.c,v 1.149 2004/11/14 22:53:42 carlsonj Exp $"
 
 #include <stdio.h>
 #include <ctype.h>
@@ -889,14 +889,54 @@ struct protocol_list {
     { 0x4b,    "SNA over 802.2" },
     { 0x4d,    "SNA" },
     { 0x4f,    "IP6 Header Compression" },
+    { 0x51,    "KNX Bridging Data" },
+    { 0x53,    "Encryption" },
+    { 0x55,    "Individual Link Encryption" },
+    { 0x57,    "IPv6" },
+    { 0x59,    "PPP Muxing" },
+    { 0x5b,    "Vendor-Specific Network Protocol" },
+    { 0x61,    "RTP IPHC Full Header" },
+    { 0x63,    "RTP IPHC Compressed TCP" },
+    { 0x65,    "RTP IPHC Compressed non-TCP" },
+    { 0x67,    "RTP IPHC Compressed UDP 8" },
+    { 0x69,    "RTP IPHC Compressed RTP 8" },
     { 0x6f,    "Stampede Bridging" },
+    { 0x73,    "MP+" },
+    { 0xc1,    "NTCITS IPI" },
     { 0xfb,    "single-link compression" },
-    { 0xfd,    "1st choice compression" },
+    { 0xfd,    "Compressed Datagram" },
     { 0x0201,  "802.1d Hello Packets" },
     { 0x0203,  "IBM Source Routing BPDU" },
     { 0x0205,  "DEC LANBridge100 Spanning Tree" },
+    { 0x0207,  "Cisco Discovery Protocol" },
+    { 0x0209,  "Netcs Twin Routing" },
+    { 0x020b,  "STP - Scheduled Transfer Protocol" },
+    { 0x020d,  "EDP - Extreme Discovery Protocol" },
+    { 0x0211,  "Optical Supervisory Channel Protocol" },
+    { 0x0213,  "Optical Supervisory Channel Protocol" },
     { 0x0231,  "Luxcom" },
     { 0x0233,  "Sigma Network Systems" },
+    { 0x0235,  "Apple Client Server Protocol" },
+    { 0x0281,  "MPLS Unicast" },
+    { 0x0283,  "MPLS Multicast" },
+    { 0x0285,  "IEEE p1284.4 standard - data packets" },
+    { 0x0287,  "ETSI TETRA Network Protocol Type 1" },
+    { 0x0289,  "Multichannel Flow Treatment Protocol" },
+    { 0x2063,  "RTP IPHC Compressed TCP No Delta" },
+    { 0x2065,  "RTP IPHC Context State" },
+    { 0x2067,  "RTP IPHC Compressed UDP 16" },
+    { 0x2069,  "RTP IPHC Compressed RTP 16" },
+    { 0x4001,  "Cray Communications Control Protocol" },
+    { 0x4003,  "CDPD Mobile Network Registration Protocol" },
+    { 0x4005,  "Expand accelerator protocol" },
+    { 0x4007,  "ODSICP NCP" },
+    { 0x4009,  "DOCSIS DLL" },
+    { 0x400B,  "Cetacean Network Detection Protocol" },
+    { 0x4021,  "Stacker LZS" },
+    { 0x4023,  "RefTek Protocol" },
+    { 0x4025,  "Fibre Channel" },
+    { 0x4027,  "EMIT Protocols" },
+    { 0x405b,  "Vendor-Specific Protocol (VSP)" },
     { 0x8021,  "Internet Protocol Control Protocol" },
     { 0x8023,  "OSI Network Layer Control Protocol" },
     { 0x8025,  "Xerox NS IDP Control Protocol" },
@@ -916,17 +956,43 @@ struct protocol_list {
     { 0x804b,  "SNA over 802.2 Control Protocol" },
     { 0x804d,  "SNA Control Protocol" },
     { 0x804f,  "IP6 Header Compression Control Protocol" },
-    { 0x006f,  "Stampede Bridging Control Protocol" },
+    { 0x8051,  "KNX Bridging Control Protocol" },
+    { 0x8053,  "Encryption Control Protocol" },
+    { 0x8055,  "Individual Link Encryption Control Protocol" },
+    { 0x8057,  "IPv6 Control Protovol" },
+    { 0x8059,  "PPP Muxing Control Protocol" },
+    { 0x805b,  "Vendor-Specific Network Control Protocol (VSNCP)" },
+    { 0x806f,  "Stampede Bridging Control Protocol" },
+    { 0x8073,  "MP+ Control Protocol" },
+    { 0x80c1,  "NTCITS IPI Control Protocol" },
     { 0x80fb,  "Single Link Compression Control Protocol" },
     { 0x80fd,  "Compression Control Protocol" },
+    { 0x8207,  "Cisco Discovery Protocol Control" },
+    { 0x8209,  "Netcs Twin Routing" },
+    { 0x820b,  "STP - Control Protocol" },
+    { 0x820d,  "EDPCP - Extreme Discovery Protocol Ctrl Prtcl" },
+    { 0x8235,  "Apple Client Server Protocol Control" },
+    { 0x8281,  "MPLSCP" },
+    { 0x8285,  "IEEE p1284.4 standard - Protocol Control" },
+    { 0x8287,  "ETSI TETRA TNP1 Control Protocol" },
+    { 0x8289,  "Multichannel Flow Treatment Protocol" },
     { 0xc021,  "Link Control Protocol" },
     { 0xc023,  "Password Authentication Protocol" },
     { 0xc025,  "Link Quality Report" },
     { 0xc027,  "Shiva Password Authentication Protocol" },
     { 0xc029,  "CallBack Control Protocol (CBCP)" },
+    { 0xc02b,  "BACP Bandwidth Allocation Control Protocol" },
+    { 0xc02d,  "BAP" },
+    { 0xc05b,  "Vendor-Specific Authentication Protocol (VSAP)" },
     { 0xc081,  "Container Control Protocol" },
     { 0xc223,  "Challenge Handshake Authentication Protocol" },
+    { 0xc225,  "RSA Authentication Protocol" },
+    { 0xc227,  "Extensible Authentication Protocol" },
+    { 0xc229,  "Mitsubishi Security Info Exch Ptcl (SIEP)" },
+    { 0xc26f,  "Stampede Bridging Authorization Protocol" },
     { 0xc281,  "Proprietary Authentication Protocol" },
+    { 0xc283,  "Proprietary Authentication Protocol" },
+    { 0xc481,  "Proprietary Node ID Authentication Protocol" },
     { 0,       NULL },
 };
 
index 4c18d3d7fce2a0bc17cc283c3a166c7e763b458e..deab65a3a1ee68b95a4b30b061fec8ae9eae4906 100644 (file)
@@ -39,7 +39,7 @@
  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: pppd.h,v 1.88 2004/11/13 12:02:22 paulus Exp $
+ * $Id: pppd.h,v 1.89 2004/11/14 22:53:42 carlsonj Exp $
  */
 
 /*
@@ -492,6 +492,7 @@ void remove_notifier __P((struct notifier **, notify_func, void *));
 void notify __P((struct notifier *, int));
 int  ppp_send_config __P((int, int, u_int32_t, int, int));
 int  ppp_recv_config __P((int, int, u_int32_t, int, int));
+const char *protocol_name __P((int));
 void remove_pidfiles __P((void));
 void lock_db __P((void));
 void unlock_db __P((void));