aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ospf.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2001-05-02 18:12:46 +0000
committerGuy Harris <guy@alum.mit.edu>2001-05-02 18:12:46 +0000
commit923ee151b7dc2376ca5ce686e9bb00aea73b101b (patch)
tree3caea5b2a674d9250a8884295b13ab3bd3115ec3 /packet-ospf.c
parent279aeaade0ccf0862d4080c529205659b1d4ba9e (diff)
Additional OSPF LSA types and opaque-options flag, from Michael
Rozhavsky. svn path=/trunk/; revision=3395
Diffstat (limited to 'packet-ospf.c')
-rw-r--r--packet-ospf.c28
1 files changed, 21 insertions, 7 deletions
diff --git a/packet-ospf.c b/packet-ospf.c
index 77693f7f72..9cf431ba86 100644
--- a/packet-ospf.c
+++ b/packet-ospf.c
@@ -2,7 +2,7 @@
* Routines for OSPF packet disassembly
* (c) Copyright Hannes R. Boehm <hannes@boehm.org>
*
- * $Id: packet-ospf.c,v 1.38 2001/04/23 17:51:33 guy Exp $
+ * $Id: packet-ospf.c,v 1.39 2001/05/02 18:12:44 guy Exp $
*
* At this time, this module is able to analyze OSPF
* packets as specified in RFC2328. MOSPF (RFC1584) and other
@@ -85,6 +85,7 @@ static const value_string auth_vals[] = {
#define OSPF_OPTIONS_NP 0x08
#define OSPF_OPTIONS_EA 0x10
#define OSPF_OPTIONS_DC 0x20
+#define OSPF_OPTIONS_O 0x40
#define OSPF_DBD_FLAG_MS 1
#define OSPF_DBD_FLAG_M 2
@@ -97,7 +98,9 @@ static const value_string auth_vals[] = {
#define OSPF_LSTYPE_SUMMERY 3
#define OSPF_LSTYPE_ASBR 4
#define OSPF_LSTYPE_ASEXT 5
+#define OSPF_LSTYPE_GRPMEMBER 6
#define OSPF_LSTYPE_ASEXT7 7
+#define OSPF_LSTYPE_EXTATTR 8
/* Opaque LSA types */
#define OSPF_LSTYPE_OP_LINKLOCAL 9
@@ -115,12 +118,18 @@ static const value_string auth_vals[] = {
#define OSPF_LSA_MPLS_TE 1
static const value_string ls_type_vals[] = {
- {OSPF_LSTYPE_ROUTER, "Router-LSA" },
- {OSPF_LSTYPE_NETWORK, "Network-LSA" },
- {OSPF_LSTYPE_SUMMERY, "Summary-LSA (IP network)" },
- {OSPF_LSTYPE_ASBR, "Summary-LSA (ASBR)" },
- {OSPF_LSTYPE_ASEXT, "AS-External-LSA (ASBR)" },
- {0, NULL }
+ {OSPF_LSTYPE_ROUTER, "Router-LSA" },
+ {OSPF_LSTYPE_NETWORK, "Network-LSA" },
+ {OSPF_LSTYPE_SUMMERY, "Summary-LSA (IP network)" },
+ {OSPF_LSTYPE_ASBR, "Summary-LSA (ASBR)" },
+ {OSPF_LSTYPE_ASEXT, "AS-External-LSA (ASBR)" },
+ {OSPF_LSTYPE_GRPMEMBER, "Group Membership LSA" },
+ {OSPF_LSTYPE_ASEXT7, "NSSA AS-External-LSA" },
+ {OSPF_LSTYPE_EXTATTR, "External Attributes LSA" },
+ {OSPF_LSTYPE_OP_LINKLOCAL, "Opaque LSA, Link-local scope" },
+ {OSPF_LSTYPE_OP_AREALOCAL, "Opaque LSA, Area-local scope" },
+ {OSPF_LSTYPE_OP_ASWIDE, "Opaque LSA, AS-wide scope" },
+ {0, NULL }
};
static int proto_ospf = -1;
@@ -1017,6 +1026,11 @@ dissect_ospf_options(tvbuff_t *tvb, int offset, proto_tree *tree)
strcat(options_string, "/");
strcat(options_string, "DC");
}
+ if (options & OSPF_OPTIONS_O) {
+ if (options_string[0] != '\0')
+ strcat(options_string, "/");
+ strcat(options_string, "O");
+ }
proto_tree_add_text(tree, tvb, offset, 1, "Options: 0x%x (%s)",
options, options_string);