Ethereal-dev: [Ethereal-dev] [PATCH] add OOBResync flag to OSPF DBD packet

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

From: Michael Rozhavsky <mrozhavsky@xxxxxxxxxxxx>
Date: Fri, 16 Dec 2005 15:20:12 -0800
Hi,

In my previous patch I forgot to add a OOBResync flag to the DBD packet
flags field. This patch adds this flag. Please apply.

Michael Rozhavsky wrote:
> Hi,
> 
> This patch adds support for draft-nguyen-ospf-lls-05.txt,
> draft-nguyen-ospf-oob-resync-05.txt and
> draft-nguyen-ospf-restart-05.txt. These are an alternative way to do
> OSPF graceful restart.
> 
> These drafts are implemented by cisco and several other vendors that
> want to interoperate with cisco. My patch adds a dissectors for LLS TLVs.
> 
> I had to modify the existing ospf dissector as it assumed that all the
> data after IP header is OSPF packet. This is not true anymore and
> probably was not true before as well.
> 
> Also please find attached an example of OSPF packets with LLS data blocks.
> 

-- 
   Michael Rozhavsky
   Senior Manager, Software Development
   Fortinet (Canada) Inc.
   4710 Kingsway, Suite 400        Tel: (604) 430-1297 ext. 309
   Burnaby, BC  V5H 4M2  Canada    Fax: (604) 430-1296
Index: packet-ospf.c
===================================================================
--- packet-ospf.c	(revision 16831)
+++ packet-ospf.c	(working copy)
@@ -107,6 +107,7 @@
 #define OSPF_DBD_FLAG_MS	1
 #define OSPF_DBD_FLAG_M		2
 #define OSPF_DBD_FLAG_I		4
+#define OSPF_DBD_FLAG_R		8
 
 #define OSPF_LS_REQ_LENGTH	12
 
@@ -311,6 +312,10 @@
 	"Master/Slave bit is SET",
 	"Master/Slave bit is NOT set"
 };
+static const true_false_string tfs_dbd_r = {
+	"OOBResync bit is SET",
+	"OOBResync bit is NOT set"
+};
 static const true_false_string tfs_lls_ext_options_lr = {
 	"LSDB Resynchrinization (LR-bit) is SET",
 	"LSDB Resynchrinization (LR-bit) is NOT set"
@@ -437,6 +442,7 @@
     OSPFF_V3_OPTIONS_R,
     OSPFF_V3_OPTIONS_DC,
     OSPFF_DBD,
+    OSPFF_DBD_R,
     OSPFF_DBD_I,
     OSPFF_DBD_M,
     OSPFF_DBD_MS,
@@ -621,6 +627,9 @@
     {&ospf_filter[OSPFF_DBD],
      { "DB Description", "ospf.dbd", FT_UINT8, BASE_HEX,
        NULL, 0x0, "", HFILL }},
+    {&ospf_filter[OSPFF_DBD_R],
+     { "R", "ospf.dbd.r", FT_BOOLEAN, 8,
+       TFS(&tfs_dbd_r), OSPF_DBD_FLAG_R, "", HFILL }},
     {&ospf_filter[OSPFF_DBD_I],
      { "I", "ospf.dbd.i", FT_BOOLEAN, 8,
        TFS(&tfs_dbd_i), OSPF_DBD_FLAG_I, "", HFILL }},
@@ -723,6 +732,7 @@
 } bitfield_info;
 
 static int bf_dbd[] = {
+    OSPFF_DBD_R,
     OSPFF_DBD_I,
     OSPFF_DBD_M,
     OSPFF_DBD_MS