4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
30 #pragma ident "%Z%%M% %I% %E% SMI"
33 * Definitions for parsing OSPF packets (RFC 2328)
57 /* link state advertisement */
59 struct lsa6_hdr ls6_hdr
;
61 /* Link state types */
63 /* Router links advertisements */
69 #define rla6_flags un_rla_flgopt.rla_flg
70 #define rla6_options un_rla_flgopt.rla_opt
78 } rla_link
[1]; /* may repeat */
81 /* Network links advertisements */
84 uint32_t nla_router
[1]; /* may repeat */
87 /* Inter Area Prefix LSA */
89 uint32_t inter_ap_metric
;
90 struct lsa6_prefix inter_ap_prefix
[1];
99 #define llsa_priority llsa_priandopt.pri
100 #define llsa_options llsa_priandopt.opt
101 struct in6_addr llsa_lladdr
;
102 uint32_t llsa_nprefix
;
103 struct lsa6_prefix llsa_prefix
[1];
106 /* Intra-Area-Prefix */
108 uint16_t intra_ap_nprefix
;
109 uint16_t intra_ap_lstype
;
110 uint32_t intra_ap_lsid
;
111 uint32_t intra_ap_rtid
;
112 struct lsa6_prefix intra_ap_prefix
[1];
118 uint8_t ospf6_version
;
121 uint32_t ospf6_routerid
;
122 uint32_t ospf6_areaid
;
123 uint16_t ospf6_chksum
;
124 uint8_t ospf6_instanceid
;
135 #define hello6_priority hello_priandopt.pri
136 #define hello6_options hello_priandopt.opt
137 uint16_t hello_helloint
;
138 uint16_t hello_deadint
;
141 uint32_t hello_neighbor
[1]; /* may repeat */
144 /* Database Description packet */
151 struct lsa6_hdr db_lshdr
[1]; /* may repeat */
154 /* Link State Request */
160 } un_lsr
[1]; /* may repeat */
162 /* Link State Update */
165 struct lsa6 lsu_lsa
[1]; /* may repeat */
168 /* Link State Acknowledgement */
170 struct lsa6_hdr lsa_lshdr
[1]; /* may repeat */
175 #define ospf6_hello ospf6_un.un_hello
176 #define ospf6_db ospf6_un.un_db
177 #define ospf6_lsr ospf6_un.un_lsr
178 #define ospf6_lsu ospf6_un.un_lsu
179 #define ospf6_lsa ospf6_un.un_lsa
185 #endif /* _OSPF6_H */