Ethereal-dev: [Ethereal-dev] [PATCH] OSPF Opaque LSA enhancements

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Michael Rozhavsky <mike@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 2 May 2001 19:35:52 +0300 (IDT)
Hi,

Attached patch adds some new LSA types for LSA type values array and
defines new DD options flag : O bit defined in Opaque LSA RFC.

P.S. Please cc me in your replies because I'm not subscribed to the list.

--

      Michael Rozhavsky
Index: packet-ospf.c
===================================================================
RCS file: /cvsroot/ethereal/packet-ospf.c,v
retrieving revision 1.38
diff -u -r1.38 packet-ospf.c
--- packet-ospf.c	2001/04/23 17:51:33	1.38
+++ packet-ospf.c	2001/05/02 15:51:58
@@ -85,6 +85,7 @@
 #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 @@
 #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 @@
 #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;
@@ -1016,6 +1025,11 @@
 	if (options_string[0] != '\0')
 	    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)",