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-- |
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> |