components/quagga/patches/65-isisd-iso-checksum.patch
author Milan Jurik <Milan.Jurik@oracle.com>
Wed, 30 Nov 2011 06:39:13 -0800
changeset 604 c25824a87b1f
parent 417 7c10b5cba79b
child 641 719d637aca9f
permissions -rw-r--r--
6674902 a lot of superfluous calls to clock_gettime if timed events is not used 6867692 libevent version needs to be updated to 1.4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
417
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     1
diff -ur quagga-0.99.8/ChangeLog quagga-unified-checksum/ChangeLog
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     2
--- ChangeLog
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     3
+++ ChangeLog
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     4
@@ -1,3 +1,18 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     5
+2008-06-25 Jingjing Duan <[email protected]>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     6
+	* lib/checksum.[ch]: Add a consolidated checksum function to be
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     7
+	  used by both OSPF and IS-IS. The consolidated version also fixes
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     8
+	  the checksum byte-order checksum on big-endian architectures.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     9
+	* isisd/iso_checksum.[ch]: Remove the old checksum implementation
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    10
+	  and use the consolidated version.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    11
+	* isisd/isis_dlpi.c: Change ioctl from PFIOCSETF (transparent mode)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    12
+	  to I_STR (non-transparent mode). The old code resulted in no
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    13
+	  filtering at all. 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    14
+	* isisd/isis_dlpi.c: (open_dlpi_dev) Clearview-UV device nodes are
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    15
+	  under /dev/net, try opening there before attempting style 1 or 2
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    16
+	  names.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    17
+	* ospfd/ospf_lsa.c: Remove the old checksum implementation and
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    18
+	  use the consolidated version.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    19
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    20
 2007-08-07 James Carlson <[email protected]>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    21
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    22
 	* configure.ac: Added support for separate link-layer access
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    23
diff -ur quagga-0.99.8/isisd/isis_dlpi.c quagga-unified-checksum/isisd/isis_dlpi.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    24
--- isisd/isis_dlpi.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    25
+++ isisd/isis_dlpi.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    26
@@ -42,8 +42,6 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    27
 #include "isisd/isis_circuit.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    28
 #include "isisd/isis_flags.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    29
 #include "isisd/isisd.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    30
-#include "isisd/isis_constants.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    31
-#include "isisd/isis_circuit.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    32
 #include "isisd/isis_network.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    33
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    34
 #include "privs.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    35
@@ -315,13 +313,24 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    36
 	circuit->interface->name);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    37
       return ISIS_WARNING;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    38
     }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    39
+  
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    40
+  /* Try the vanity node first, if permitted */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    41
+  if (getenv("DLPI_DEVONLY") == NULL)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    42
+    {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    43
+      (void) snprintf (devpath, sizeof(devpath), "/dev/net/%s",
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    44
+                      circuit->interface->name);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    45
+      fd = dlpiopen (devpath, &acklen);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    46
+    }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    47
+  
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    48
+  /* Now try as an ordinary Style 1 node */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    49
+  if (fd == -1)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    50
+    {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    51
+      (void) snprintf (devpath, sizeof (devpath), "/dev/%s",
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    52
+                      circuit->interface->name);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    53
+      unit = -1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    54
+      fd = dlpiopen (devpath, &acklen);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    55
+    }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    56
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    57
-  /* Try first as Style 1 */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    58
-  (void) snprintf(devpath, sizeof (devpath), "/dev/%s",
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    59
-    circuit->interface->name);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    60
-  unit = -1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    61
-  fd = dlpiopen (devpath, &acklen);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    62
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    63
   /* If that fails, try again as Style 2 */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    64
   if (fd == -1)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    65
     {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    66
@@ -452,11 +461,19 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    67
   if (ioctl (fd, I_PUSH, "pfmod") == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    68
     {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    69
       struct packetfilt pfil;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    70
+      struct strioctl sioc;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    71
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    72
       pfil.Pf_Priority = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    73
       pfil.Pf_FilterLen = sizeof (pf_filter) / sizeof (u_short);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    74
       memcpy (pfil.Pf_Filter, pf_filter, sizeof (pf_filter));
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    75
-      ioctl (fd, PFIOCSETF, &pfil);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    76
+      /* pfmod does not support transparent ioctls */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    77
+      sioc.ic_cmd = PFIOCSETF;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    78
+      sioc.ic_timout = 5;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    79
+      sioc.ic_len = sizeof (struct packetfilt);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    80
+      sioc.ic_dp = (char *)&pfil;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    81
+      if (ioctl (fd, I_STR, &sioc) == -1)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    82
+         zlog_warn("%s: could not perform PF_IOCSETF on %s",
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    83
+           __func__, circuit->interface->name);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    84
     }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    85
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    86
   circuit->fd = fd;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    87
diff -ur quagga-0.99.8/isisd/isis_lsp.c quagga-unified-checksum/isisd/isis_lsp.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    88
--- isisd/isis_lsp.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    89
+++ isisd/isis_lsp.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    90
@@ -33,6 +33,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    91
 #include "command.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    92
 #include "hash.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    93
 #include "if.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    94
+#include "checksum.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    95
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    96
 #include "isisd/dict.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    97
 #include "isisd/isis_constants.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    98
@@ -45,7 +46,6 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    99
 #include "isisd/isis_dynhn.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   100
 #include "isisd/isis_misc.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   101
 #include "isisd/isis_flags.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   102
-#include "isisd/iso_checksum.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   103
 #include "isisd/isis_csm.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   104
 #include "isisd/isis_adjacency.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   105
 #include "isisd/isis_spf.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   106
@@ -314,7 +314,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   107
     newseq = seq_num++;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   108
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   109
   lsp->lsp_header->seq_num = htonl (newseq);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   110
-  iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   111
+  fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   112
 		   ntohs (lsp->lsp_header->pdu_len) - 12, 12);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   113
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   114
   return;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   115
@@ -1803,7 +1803,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   116
     tlv_add_is_neighs (lsp->tlv_data.es_neighs, lsp->pdu);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   117
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   118
   lsp->lsp_header->pdu_len = htons (stream_get_endp (lsp->pdu));
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   119
-  iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   120
+  fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   121
 		   ntohs (lsp->lsp_header->pdu_len) - 12, 12);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   122
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   123
   list_delete (adj_list);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   124
@@ -2071,7 +2071,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   125
       lsp->lsp_header->pdu_len =
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   126
 	htons (ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   127
       lsp->purged = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   128
-      iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   129
+      fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   130
 		       ntohs (lsp->lsp_header->pdu_len) - 12, 12);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   131
       ISIS_FLAGS_SET_ALL (lsp->SRMflags);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   132
     }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   133
diff -ur quagga-0.99.8/isisd/isis_pdu.c quagga-unified-checksum/isisd/isis_pdu.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   134
--- isisd/isis_pdu.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   135
+++ isisd/isis_pdu.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   136
@@ -32,6 +32,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   137
 #include "hash.c"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   138
 #include "prefix.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   139
 #include "if.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   140
+#include "checksum.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   141
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   142
 #include "isisd/dict.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   143
 #include "isisd/include-netbsd/iso.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   144
@@ -1121,7 +1122,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   145
 		  if (isis->debugs & DEBUG_UPDATE_PACKETS)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   146
 		    zlog_debug ("LSP LEN: %d",
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   147
 				ntohs (lsp->lsp_header->pdu_len));
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   148
-		  iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   149
+		  fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   150
 				   ntohs (lsp->lsp_header->pdu_len) - 12, 12);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   151
 		  ISIS_FLAGS_SET_ALL (lsp->SRMflags);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   152
 		  if (isis->debugs & DEBUG_UPDATE_PACKETS)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   153
@@ -1164,7 +1165,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   154
 	  /* 7.3.16.1  */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   155
 	  lsp->lsp_header->seq_num = htonl (ntohl (hdr->seq_num) + 1);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   156
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   157
-	  iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   158
+	  fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   159
 			   ntohs (lsp->lsp_header->pdu_len) - 12, 12);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   160
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   161
 	  ISIS_FLAGS_SET_ALL (lsp->SRMflags);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   162
diff -ur quagga-0.99.8/isisd/iso_checksum.c quagga-unified-checksum/isisd/iso_checksum.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   163
--- isisd/iso_checksum.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   164
+++ isisd/iso_checksum.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   165
@@ -23,6 +23,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   166
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   167
 #include <zebra.h>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   168
 #include "iso_checksum.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   169
+#include "checksum.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   170
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   171
 /*
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   172
  * Calculations of the OSI checksum.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   173
@@ -47,14 +48,10 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   174
 int
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   175
 iso_csum_verify (u_char * buffer, int len, uint16_t * csum)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   176
 {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   177
-  u_int8_t *p;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   178
+  u_int16_t checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   179
   u_int32_t c0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   180
   u_int32_t c1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   181
-  u_int16_t checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   182
-  int i, partial_len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   183
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   184
-  p = buffer;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   185
-  checksum = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   186
   c0 = *csum & 0xff00;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   187
   c1 = *csum & 0x00ff;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   188
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   189
@@ -70,124 +69,8 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   190
   if (c0 == 0 || c1 == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   191
     return 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   192
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   193
-  /*
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   194
-   * Otherwise initialize to zero and calculate...
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   195
-   */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   196
-  c0 = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   197
-  c1 = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   198
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   199
-  while (len)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   200
-    {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   201
-      partial_len = MIN(len, 5803);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   202
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   203
-      for (i = 0; i < partial_len; i++)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   204
-	{
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   205
-	  c0 = c0 + *(p++);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   206
-	  c1 += c0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   207
-	}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   208
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   209
-      c0 = c0 % 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   210
-      c1 = c1 % 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   211
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   212
-      len -= partial_len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   213
-    }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   214
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   215
-  if (c0 == 0 && c1 == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   216
-    return 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   217
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   218
+  checksum = fletcher_checksum(buffer, len, (u_char *)csum - buffer);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   219
+  if (checksum == *csum)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   220
+      return 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   221
   return 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   222
 }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   223
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   224
-/*
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   225
- * Creates the checksum. *csum points to the position of the checksum in the 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   226
- * PDU. 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   227
- * Based on Annex C.4 of ISO/IEC 8473
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   228
- */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   229
-#define FIXED_CODE
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   230
-u_int16_t
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   231
-iso_csum_create (u_char * buffer, int len, u_int16_t n)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   232
-{
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   233
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   234
-  u_int8_t *p;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   235
-  int x;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   236
-  int y;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   237
-  u_int32_t mul;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   238
-  u_int32_t c0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   239
-  u_int32_t c1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   240
-  u_int16_t checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   241
-  u_int16_t *csum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   242
-  int i, init_len, partial_len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   243
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   244
-  checksum = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   245
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   246
-  /*
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   247
-   * Zero the csum in the packet.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   248
-   */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   249
-  csum = (u_int16_t *) (buffer + n);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   250
-  *(csum) = checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   251
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   252
-  p = buffer;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   253
-  c0 = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   254
-  c1 = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   255
-  init_len = len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   256
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   257
-  while (len != 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   258
-    {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   259
-      partial_len = MIN(len, 5803);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   260
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   261
-      for (i = 0; i < partial_len; i++)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   262
-	{
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   263
-	  c0 = c0 + *(p++);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   264
-	  c1 += c0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   265
-	}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   266
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   267
-      c0 = c0 % 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   268
-      c1 = c1 % 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   269
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   270
-      len -= partial_len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   271
-    }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   272
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   273
-  mul = (init_len - n)*(c0);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   274
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   275
-#ifdef FIXED_CODE
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   276
-  x = mul - c0 - c1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   277
-  y = c1 - mul - 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   278
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   279
-  if (y > 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   280
-    y++;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   281
-  if (x < 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   282
-    x--;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   283
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   284
-  x %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   285
-  y %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   286
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   287
-  if (x == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   288
-    x = 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   289
-  if (y == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   290
-    y = 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   291
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   292
-  checksum = (y << 8) | (x & 0xFF);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   293
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   294
-#else
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   295
-  x = mul - c0 - c1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   296
-  x %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   297
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   298
-  y = c1 - mul - 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   299
-  y %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   300
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   301
-  if (x == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   302
-    x = 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   303
-  if (y == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   304
-    y = 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   305
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   306
-  checksum = ((y << 8) | x);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   307
-#endif
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   308
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   309
-  /*
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   310
-   * Now we write this to the packet
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   311
-   */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   312
-  *(csum) = checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   313
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   314
-  /* return the checksum for user usage */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   315
-  return checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   316
-}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   317
diff -ur quagga-0.99.8/isisd/iso_checksum.h quagga-unified-checksum/isisd/iso_checksum.h
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   318
--- isisd/iso_checksum.h
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   319
+++ isisd/iso_checksum.h
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   320
@@ -24,6 +24,5 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   321
 #define _ZEBRA_ISO_CSUM_H
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   322
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   323
 int iso_csum_verify (u_char * buffer, int len, uint16_t * csum);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   324
-u_int16_t iso_csum_create (u_char * buffer, int len, u_int16_t n);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   325
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   326
 #endif /* _ZEBRA_ISO_CSUM_H */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   327
diff -ur quagga-0.99.8/lib/checksum.c quagga-unified-checksum/lib/checksum.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   328
--- lib/checksum.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   329
+++ lib/checksum.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   330
@@ -45,3 +45,82 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   331
 	answer = ~sum;		/* ones-complement, then truncate to 16 bits */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   332
 	return(answer);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   333
 }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   334
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   335
+/* Fletcher Checksum -- Refer to RFC1008. */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   336
+#define MODX                 4102   /* 5802 should be fine */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   337
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   338
+/* To be consistent, offset is 0-based index, rather than the 1-based 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   339
+   index required in the specification ISO 8473, Annex C.1 */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   340
+u_int16_t
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   341
+fletcher_checksum(u_char * buffer, int len, u_int16_t offset)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   342
+{
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   343
+  u_int8_t *p;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   344
+  int x;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   345
+  int y;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   346
+  u_int32_t mul;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   347
+  u_int32_t c0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   348
+  u_int32_t c1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   349
+  u_int16_t checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   350
+  u_int16_t *csum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   351
+  int i, init_len, partial_len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   352
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   353
+  checksum = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   354
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   355
+  /*
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   356
+   * Zero the csum in the packet.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   357
+   */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   358
+  csum = (u_int16_t *) (buffer + offset);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   359
+  *(csum) = checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   360
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   361
+  p = buffer;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   362
+  c0 = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   363
+  c1 = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   364
+  init_len = len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   365
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   366
+  while (len != 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   367
+    {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   368
+      partial_len = MIN(len, MODX);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   369
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   370
+      for (i = 0; i < partial_len; i++)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   371
+	{
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   372
+	  c0 = c0 + *(p++);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   373
+	  c1 += c0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   374
+	}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   375
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   376
+      c0 = c0 % 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   377
+      c1 = c1 % 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   378
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   379
+      len -= partial_len;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   380
+    }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   381
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   382
+  mul = (init_len - offset)*(c0);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   383
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   384
+  x = mul - c0 - c1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   385
+  y = c1 - mul - 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   386
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   387
+  if (y > 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   388
+    y++;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   389
+  if (x < 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   390
+    x--;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   391
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   392
+  x %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   393
+  y %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   394
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   395
+  if (x == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   396
+    x = 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   397
+  if (y == 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   398
+    y = 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   399
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   400
+  /*
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   401
+   * Now we write this to the packet.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   402
+   * We could skip this step too, since the checksum returned would
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   403
+   * be stored into the checksum field by the caller.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   404
+   */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   405
+  buffer[offset] = x;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   406
+  buffer[offset + 1] = y;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   407
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   408
+  /* Take care of the endian issue */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   409
+  checksum = htons((x << 8) | (y & 0xFF));
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   410
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   411
+  return checksum;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   412
+}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   413
diff -ur quagga-0.99.8/lib/checksum.h quagga-unified-checksum/lib/checksum.h
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   414
--- lib/checksum.h
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   415
+++ lib/checksum.h
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   416
@@ -1 +1,2 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   417
 extern int in_cksum(void *, int);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   418
+extern u_int16_t fletcher_checksum(u_char * buffer, int len, u_int16_t offset);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   419
diff -ur quagga-0.99.8/ospfd/ospf_lsa.c quagga-unified-checksum/ospfd/ospf_lsa.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   420
--- ospfd/ospf_lsa.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   421
+++ ospfd/ospf_lsa.c
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   422
@@ -32,6 +32,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   423
 #include "thread.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   424
 #include "hash.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   425
 #include "sockunion.h"		/* for inet_aton() */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   426
+#include "checksum.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   427
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   428
 #include "ospfd/ospfd.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   429
 #include "ospfd/ospf_interface.h"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   430
@@ -172,46 +173,22 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   431
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   432
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   433
 /* Fletcher Checksum -- Refer to RFC1008. */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   434
-#define MODX                 4102
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   435
-#define LSA_CHECKSUM_OFFSET    15
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   436
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   437
+/* All the offsets are zero-based. The offsets in the RFC1008 are 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   438
+   one-based. */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   439
 u_int16_t
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   440
 ospf_lsa_checksum (struct lsa_header *lsa)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   441
 {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   442
-  u_char *sp, *ep, *p, *q;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   443
-  int c0 = 0, c1 = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   444
-  int x, y;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   445
-  u_int16_t length;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   446
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   447
-  lsa->checksum = 0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   448
-  length = ntohs (lsa->length) - 2;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   449
-  sp = (u_char *) &lsa->options;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   450
-
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   451
-  for (ep = sp + length; sp < ep; sp = q)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   452
-    {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   453
-      q = sp + MODX;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   454
-      if (q > ep)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   455
-        q = ep;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   456
-      for (p = sp; p < q; p++)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   457
-        {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   458
-          c0 += *p;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   459
-          c1 += c0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   460
-        }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   461
-      c0 %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   462
-      c1 %= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   463
-    }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   464
+  u_char *buffer = (u_char *) &lsa->options;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   465
+  int options_offset = buffer - (u_char *) &lsa->ls_age; /* should be 2 */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   466
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   467
-  x = (((int)length - LSA_CHECKSUM_OFFSET) * c0 - c1) % 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   468
-  if (x <= 0)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   469
-    x += 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   470
-  y = 510 - c0 - x;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   471
-  if (y > 255)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   472
-    y -= 255;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   473
+  /* Skip the AGE field */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   474
+  u_int16_t len = ntohs(lsa->length) - options_offset; 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   475
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   476
-  /* take care endian issue. */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   477
-  lsa->checksum = htons ((x << 8) + y);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   478
+  /* Checksum offset starts from "options" field, not the beginning of the
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   479
+     lsa_header struct. The offset is 14, rather than 16. */
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   480
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   481
-  return (lsa->checksum);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   482
+  return fletcher_checksum(buffer, len, (u_char *) &lsa->checksum - buffer);
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   483
 }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   484
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   485
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   486
diff -ur quagga-0.99.8/solaris/quagga.init.in quagga-unified-checksum/solaris/quagga.init.in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   487
--- solaris/quagga.init.in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   488
+++ solaris/quagga.init.in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   489
@@ -134,7 +134,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   490
 case "${DAEMON}" in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   491
 	bgpd)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   492
 	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   493
-	zebra | ospfd | ospf6d | ripd | ripngd )
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   494
+	zebra | ospfd | ospf6d | ripd | ripngd | isisd)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   495
 		quagga_is_globalzone || exit $SMF_EXIT_OK
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   496
 	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   497
 	*)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   498
@@ -168,7 +168,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   499
 	eval exec $DAEMON_PATH/$DAEMON $DAEMON_ARGS --pid_file ${PIDFILE} &
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   500
 }
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   501
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   502
-stop () {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   503
+daemonstop () {
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   504
 	if [ -f "${PIDFILE}" ]; then
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   505
 		/usr/bin/kill -TERM `/usr/bin/cat "${PIDFILE}"`
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   506
 	fi
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   507
@@ -179,7 +179,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   508
 	start
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   509
 	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   510
 'stop')
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   511
-	stop
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   512
+	daemonstop
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   513
 	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   514
 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   515
 *)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   516
diff -ur quagga-0.99.8/solaris/quagga.xml.in quagga-unified-checksum/solaris/quagga.xml.in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   517
--- solaris/quagga.xml.in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   518
+++ solaris/quagga.xml.in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   519
@@ -187,7 +187,7 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   520
 		<service_fmri value='svc:/network/routing-setup' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   521
 	</dependency>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   522
 	
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   523
-	<!-- ensure that restart of zebra is propogated to daemon -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   524
+	<!-- ensure that restart of zebra is propagated to daemon -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   525
 	<dependency
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   526
 		name='zebra'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   527
 		grouping='optional_all'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   528
@@ -818,6 +818,148 @@
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   529
 			<manpage title='bgpd' section='1M'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   530
 				manpath='@mandir@' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   531
 			<doc_link name='quagga.net' 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   532
+				uri='http://www.quagga.net/' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   533
+		</documentation>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   534
+	</template>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   535
+	</instance>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   536
+	<stability value='Unstable' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   537
+</service>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   538
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   539
+<service
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   540
+	name='network/routing/isis'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   541
+	type='service'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   542
+	version='1'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   543
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   544
+	<instance name='quagga' enabled='false'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   545
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   546
+	<dependency name='fs'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   547
+		grouping='require_all'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   548
+		restart_on='none'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   549
+		type='service'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   550
+		<service_fmri
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   551
+			value='svc:/system/filesystem/usr:default' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   552
+	</dependency>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   553
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   554
+	<dependency
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   555
+		name='ipv6-forwarding'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   556
+		grouping='optional_all'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   557
+		restart_on='refresh'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   558
+		type='service'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   559
+		<service_fmri value='svc:/network/ipv6-forwarding' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   560
+	</dependency>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   561
+	
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   562
+	<dependency
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   563
+		name='ipv4-forwarding'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   564
+		grouping='optional_all'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   565
+		restart_on='refresh'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   566
+		type='service'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   567
+		<service_fmri value='svc:/network/ipv4-forwarding' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   568
+	</dependency>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   569
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   570
+	<!-- do not not run unless routing-setup has run -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   571
+	<dependency
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   572
+		name='network_routing_setup'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   573
+		grouping='require_all'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   574
+		restart_on='refresh'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   575
+		type='service'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   576
+		<service_fmri value='svc:/network/routing-setup' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   577
+	</dependency>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   578
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   579
+	<!-- ensure that restart of zebra is propogated to daemon -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   580
+	<dependency
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   581
+		name='zebra'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   582
+		grouping='optional_all'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   583
+		restart_on='restart'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   584
+		type='service'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   585
+		<service_fmri value='svc:/network/routing/zebra:quagga' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   586
+	</dependency>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   587
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   588
+	<exec_method
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   589
+		type='method'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   590
+		name='start'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   591
+		exec='/lib/svc/method/quagga isisd'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   592
+		timeout_seconds='60'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   593
+		<method_context>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   594
+		  <method_credential
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   595
+		   user='root' group='root'/>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   596
+ 		</method_context>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   597
+	</exec_method>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   598
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   599
+	<!-- isisd can take a long time to shutdown, due to graceful 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   600
+	     shutdown 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   601
+	 -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   602
+	<exec_method
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   603
+		type='method'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   604
+		name='stop'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   605
+		exec=':kill'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   606
+		timeout_seconds='60'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   607
+	</exec_method>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   608
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   609
+	<property_group name='startd'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   610
+		type='framework'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   611
+		<!-- sub-process core dumps shouldn't restart session -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   612
+		<propval name='ignore_error'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   613
+		    type='astring' value='core,signal' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   614
+	</property_group>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   615
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   616
+	<!-- Properties in this group are used by routeadm (1M) -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   617
+	<property_group name='routeadm' type='application'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   618
+		<stability value='Unstable' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   619
+		<!-- Identifies service as a routing service -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   620
+		<propval name='daemon' type='astring'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   621
+			value='@sbindir@/isisd' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   622
+		<propval name='value_authorization' type='astring'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   623
+			value='solaris.smf.value.routing' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   624
+		<property name='protocol' type='astring'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   625
+			<astring_list>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   626
+				<value_node value='ipv4'/>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   627
+				<value_node value='ipv6'/>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   628
+			</astring_list>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   629
+		</property>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   630
+	</property_group>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   631
+	
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   632
+	<!-- Properties in this group are modifiable via routeadm (1M) -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   633
+	<property_group name='routing' type='application'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   634
+		<propval name='value_authorization' type='astring' 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   635
+		         value='solaris.smf.value.routing' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   636
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   637
+		<!-- Options common to Quagga daemons -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   638
+		<!-- The config file to use, if not the default -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   639
+		<propval name='config_file' type='astring' value=''/>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   640
+		<!-- The vty_port to listen on if not the default.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   641
+		     0 to disable --> 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   642
+		<propval name='vty_port' type='integer' value='0' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   643
+		<!-- The address to bind the VTY interface to, if not any. -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   644
+		<propval name='vty_address' type='astring' value='' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   645
+		<!-- The user to switch to after startup, if not the default -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   646
+		<propval name='user' type='astring' value='' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   647
+		<!-- The group to switch to, if not the default.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   648
+		     If user is specified, this defaults to a group with
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   649
+		     same name as user -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   650
+		<propval name='group' type='astring' value='' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   651
+		<!-- The pidfile to use, if not the default of
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   652
+		     @quagga_statedir@ -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   653
+		<propval name='pid_file' type='astring' value='' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   654
+	</property_group>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   655
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   656
+	<property_group name='general' type='framework'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   657
+		<!-- to start stop routing services -->
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   658
+		<propval name='action_authorization' type='astring'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   659
+			 value='solaris.smf.manage.routing' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   660
+		<propval name='value_authorization' type='astring'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   661
+			 value='solaris.smf.manage.routing' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   662
+	</property_group>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   663
+
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   664
+	<template>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   665
+		<common_name>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   666
+			<loctext xml:lang='C'>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   667
+			Quagga: isisd, IS-IS routing protocol daemon.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   668
+			</loctext>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   669
+		</common_name>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   670
+		<documentation>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   671
+			<manpage title='isisd' section='1M'
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   672
+				manpath='@mandir@' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   673
+			<doc_link name='quagga.net' 
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   674
 				uri='http://www.quagga.net/' />
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   675
 		</documentation>
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   676
 	</template>