From sacadmin Mon Mar  8 12:24:31 2004
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Date: Mon, 8 Mar 2004 15:19:17 -0500
From: James Carlson <james.d.carlson@sun.com>
To: psarc@sac.sfbay.sun.com
cc: sowmini.varadhan@sun.com
Subject: 2004/202 Snoop OSPF Decode
Content-Length: 8698

I'm sponsoring this fast-track request for Sowmini Varadhan.  The
timer is set for 03/15/2004.

(The case proposes "ospf" and "ospf6" instead of "ospf2" and "ospf3"
to keep parity with other IPv6-related keywords.)


BACKGROUND

  Currently, snoop is not equipped to parse OSPF packets, making it
  inadequate for ready diagnosis of many network problems relating to
  OSPF.

  The output of snoop is classified as "Unstable."  This change
  request is for a Minor release binding.

  This change will enable the decoding of ospfv2/IPv4 and ospfv3/IPv6
  packets through snoop.  The RFE associated with this case is:
    4750416 snoop could decode OSPF/OSPFv6 traffic
  Snoop's name-space of filter keywords will be expanded to include
  "ospf" and "ospf6".  The keywords interface is classified as
  Evolving.


PROPOSED CHANGES:

*** snoop.man.orig      Wed Nov 12 12:59:14 2003
--- snoop.man.new       Fri Dec 12 16:16:11 2003
***************
*** 554,560 ****
--- 554,564 ----
  
             sctp   True if the packet is a SCTP packet.
  
+            ospf   True if the packet is an OSPFv2/IPv4 packet.
  
+            ospf6   True if the packet is an OSPFv3/IPv6 packet.
+ 
+ 
  EXAMPLES
       Example 1: Using the snoop Command


snoop output when handling OSPF packets currently is:

(summary output)
  10.8.48.73 -> 224.0.0.5    length:   82  IP  D=224.0.0.5 S=10.8.48.73 LEN=68, ID=15839, TOS=0xc0, TTL=1

(detail output)
ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 1 arrived at 12:17:48.00051
ETHER:  Packet size = 82 bytes
ETHER:  Destination = 1:0:5e:0:0:5, (multicast)
ETHER:  Source      = 8:0:20:bb:e:9, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 68 bytes
IP:   Identification = 58718
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 ()
IP:   Header checksum = b8ec
IP:   Source address = 10.8.48.73, 10.8.48.73
IP:   Destination address = 224.0.0.5, 224.0.0.5
IP:   No options
IP:   
(...)

After the addition of support for the decoding of ospf packets, 
the output will appear as shown below.

Example 1: snoop summary output for ospf/ipv4
---------------------------------------------

   10.0.4.73 -> 224.0.0.5    length:   94  OSPF LSUpd RTRID=10.0.3.73 AREA=0.0.0.1 LEN=60 1 LSAs
   10.0.4.74 -> 224.0.0.5    length:   78  OSPF Hello RTRID=10.8.48.74 AREA=0.0.0.1 LEN=44 0 nbrs
   10.0.4.74 -> 10.0.4.73    length:   66  OSPF DD RTRID=10.8.48.74 AREA=0.0.0.1 LEN=32  I/M/MS I/M/MS S 404C993B
   10.0.4.74 -> 10.0.4.73    length:   78  OSPF LSAck RTRID=10.8.48.74 AREA=0.0.0.1 LEN=44 1 LSAs
   10.0.4.74 -> 10.0.4.73    length:   70  OSPF LSReq RTRID=10.8.48.74 AREA=0.0.0.1 LEN=36  1 LSAs

Example 2: snoop verbose output for ospf/ipv4
---------------------------------------------

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 1 arrived at 11:01:0.00031
ETHER:  Packet size = 82 bytes
ETHER:  Destination = 1:0:5e:0:0:5, (multicast)
ETHER:  Source      = 8:0:20:bb:e:9, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 68 bytes
IP:   Identification = 19275
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 (OSPF)
IP:   Header checksum = 7f08
IP:   Source address = 10.0.4.73, 10.0.4.73
IP:   Destination address = 224.0.0.5, 224.0.0.5
IP:   No options
IP:   
OSPF:  ----- OSPF Header -----
OSPF:  
OSPF:  Version = 2
OSPF:  Type = Hello
OSPF:  Router ID = 10.0.3.73
OSPF:  Area ID = 0.0.0.1
OSPF:  Checksum = 0x986b
OSPF:  Auth = None
OSPF HELLO:  ----- Hello Packet -----
OSPF HELLO:  
OSPF HELLO:  Options = E
OSPF HELLO:  Mask = 255.255.255.0
OSPF HELLO:  Hello interval = 10
OSPF HELLO:  Priority = 1
OSPF HELLO:  Dead interval = 40
OSPF HELLO:  Designated Router = 10.0.4.73
OSPF HELLO:  Backup Designated Router = 10.0.4.74
OSPF HELLO:  Neighbor: 10.8.48.74

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 4 arrived at 11:01:10.00032
ETHER:  Packet size = 66 bytes
ETHER:  Destination = 8:0:20:bb:e:9, Sun
ETHER:  Source      = 8:0:20:bb:b:cc, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 52 bytes
IP:   Identification = 49255
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 (OSPF)
IP:   Header checksum = dbb7
IP:   Source address = 10.0.4.74, 10.0.4.74
IP:   Destination address = 10.0.4.73, 10.0.4.73
IP:   No options
IP:   
OSPF:  ----- OSPF Header -----
OSPF:  
OSPF:  Version = 2
OSPF:  Type = DD
OSPF:  Router ID = 10.8.48.74
OSPF:  Area ID = 0.0.0.1
OSPF:  Checksum = 0xe1f7
OSPF:  Auth = None
OSPF DB:  ----- Database Description Packet -----
OSPF DB:  
OSPF DB:  Options = E
OSPF DB:  Flags = I/M/MS
OSPF DB:  Sequence = 0x404C9963

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 5 arrived at 11:01:10.00032
ETHER:  Packet size = 94 bytes
ETHER:  Destination = 1:0:5e:0:0:5, (multicast)
ETHER:  Source      = 8:0:20:bb:e:9, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 80 bytes
IP:   Identification = 19277
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 (OSPF)
IP:   Header checksum = 7efa
IP:   Source address = 10.0.4.73, 10.0.4.73
IP:   Destination address = 224.0.0.5, 224.0.0.5
IP:   No options
IP:   
OSPF:  ----- OSPF Header -----
OSPF:  
OSPF:  Version = 2
OSPF:  Type = LSUpd
OSPF:  Router ID = 10.0.3.73
OSPF:  Area ID = 0.0.0.1
OSPF:  Checksum = 0x95b1
OSPF:  Auth = None
OSPF LSU:  ----- Link State Update Packet -----
OSPF LSU:  
OSPF LSU:  Options = E
OSPF LSU:  Sequence = 80000001 
OSPF LSU:  Age = 9672C 
OSPF LSU:  Network LSA Router = 10.0.3.73 
OSPF LSU:              Interface = 10.0.3.73 
OSPF LSU:  Mask = 255.255.255.0
OSPF LSU:  Routers:
OSPF LSU:       10.0.3.73
OSPF LSU:       10.8.48.74


Example 3: snoop verbose output for ospfv3/ipv6
-----------------------------------------------

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 1 arrived at 11:42:20.00062
ETHER:  Packet size = 90 bytes
ETHER:  Destination = 33:33:0:0:0:5, (multicast)
ETHER:  Source      = 0:3:47:f1:8b:ef, 
ETHER:  Ethertype = 86DD (IPv6)
ETHER:  
IPv6:   ----- IPv6 Header -----
IPv6:   
IPv6:   Version = 6
IPv6:   Traffic Class = 0
IPv6:   Flow label = 0x0
IPv6:   Payload length = 36
IPv6:   Next Header = 89 (OSPF)
IPv6:   Hop Limit = 1
IPv6:   Source address = fe80::203:47ff:fef1:8bef
IPv6:   Destination address = ff02::5
IPv6:   
OSPFv3:  ----- OSPF Header -----
OSPFv3:  
OSPFv3:  Version = 3
OSPFv3:  Type = Hello
OSPFv3:  Router ID = 0.0.0.33
OSPFv3:  Area ID = 0.0.0.1
OSPFv3:  Checksum = 0x2865
OSPFv3:  Instance = 0
OSPF HELLO:  ----- Hello Packet -----
OSPF HELLO:  
OSPF HELLO:  Options = V6/E/R
OSPF HELLO:  Interface ID = 0.0.0.4
OSPF HELLO:  Hello interval = 10
OSPF HELLO:  Priority = 1
OSPF HELLO:  Dead interval = 40
OSPF HELLO:  Designated Router = 0.0.0.33

From sacadmin Wed Mar 17 10:35:15 2004
Date: Wed, 17 Mar 2004 13:30:31 -0500 (EST)
From: sowmini.varadhan@Sun.COM
To: James.D.Carlson@Sun.COM, psarc@sac.sfbay.sun.com
Cc: Sowmini.Varadhan@Sun.COM
Subject: Re: 2004/202 Snoop OSPF Decode
Content-Length: 8529

Here's the updated spec, as requested in the meeting today.

--Sowmini
-------------------------------------------------------------------------

BACKGROUND

  Currently,  snoop is not equipped to parse OSPF packets, making
  it inadequate for ready diagnosis of many network problems
  relating to OSPF.

  The output of snoop is classified as "unstable". This change
  request is for a Minor release binding.

  This change will enable the decoding of ospfv2 and ospfv3
  packets through snoop.  The RFE associated with this case is:
    4750416 snoop could decode OSPF/OSPFv6 traffic
  Snoop's name-space of filter keywords will be expanded to 
  include "ospf".  The keywords interface is classified as 
  Evolving.  


PROPOSED CHANGES:

*** snoop.man.orig      Wed Nov 12 12:59:14 2003
--- snoop.man.new       Fri Dec 12 16:16:11 2003
***************
*** 554,560 ****
--- 554,564 ----
  
             sctp   True if the packet is a SCTP packet.
  
+            ospf   True if the packet is an OSPF packet.
  
  EXAMPLES
       Example 1: Using the snoop Command


snoop output when handling OSPF packets currently is:

(summary output)
  10.8.48.73 -> 224.0.0.5    length:   82  IP  D=224.0.0.5 S=10.8.48.73 LEN=68, ID=15839, TOS=0xc0, TTL=1

(detail output)
ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 1 arrived at 12:17:48.00051
ETHER:  Packet size = 82 bytes
ETHER:  Destination = 1:0:5e:0:0:5, (multicast)
ETHER:  Source      = 8:0:20:bb:e:9, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 68 bytes
IP:   Identification = 58718
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 ()
IP:   Header checksum = b8ec
IP:   Source address = 10.8.48.73, 10.8.48.73
IP:   Destination address = 224.0.0.5, 224.0.0.5
IP:   No options
IP:   
(...)

After the addition of support for the decoding of ospf packets, 
the output will appear as shown below.

Example 1: snoop summary output for ospf/ipv4
---------------------------------------------

   10.0.4.73 -> 224.0.0.5    length:   94  OSPF LSUpd RTRID=10.0.3.73 AREA=0.0.0.1 LEN=60 1 LSA's
   10.0.4.74 -> 224.0.0.5    length:   78  OSPF Hello RTRID=10.8.48.74 AREA=0.0.0.1 LEN=44 0 nbrs
   10.0.4.74 -> 10.0.4.73    length:   66  OSPF DD RTRID=10.8.48.74 AREA=0.0.0.1 LEN=32  I/M/MS I/M/MS S 404C993B
   10.0.4.74 -> 10.0.4.73    length:   78  OSPF LSAck RTRID=10.8.48.74 AREA=0.0.0.1 LEN=44 1 LSA's
   10.0.4.74 -> 10.0.4.73    length:   70  OSPF LSReq RTRID=10.8.48.74 AREA=0.0.0.1 LEN=36  1 LSA's

Example 2: snoop verbose output for ospf/ipv4
---------------------------------------------

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 1 arrived at 11:01:0.00031
ETHER:  Packet size = 82 bytes
ETHER:  Destination = 1:0:5e:0:0:5, (multicast)
ETHER:  Source      = 8:0:20:bb:e:9, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 68 bytes
IP:   Identification = 19275
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 (OSPF)
IP:   Header checksum = 7f08
IP:   Source address = 10.0.4.73, 10.0.4.73
IP:   Destination address = 224.0.0.5, 224.0.0.5
IP:   No options
IP:   
OSPF:  ----- OSPF Header -----
OSPF:  
OSPF:  Version = 2
OSPF:  Type = Hello
OSPF:  Router ID = 10.0.3.73
OSPF:  Area ID = 0.0.0.1
OSPF:  Checksum = 0x986b
OSPF:  Auth = None
OSPF HELLO:  ----- Hello Packet -----
OSPF HELLO:  
OSPF HELLO:  Options = E
OSPF HELLO:  Mask = 255.255.255.0
OSPF HELLO:  Hello interval = 10
OSPF HELLO:  Priority = 1
OSPF HELLO:  Dead interval = 40
OSPF HELLO:  Designated Router = 10.0.4.73
OSPF HELLO:  Backup Designated Router = 10.0.4.74
OSPF HELLO:  Neighbor: 10.8.48.74

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 4 arrived at 11:01:10.00032
ETHER:  Packet size = 66 bytes
ETHER:  Destination = 8:0:20:bb:e:9, Sun
ETHER:  Source      = 8:0:20:bb:b:cc, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 52 bytes
IP:   Identification = 49255
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 (OSPF)
IP:   Header checksum = dbb7
IP:   Source address = 10.0.4.74, 10.0.4.74
IP:   Destination address = 10.0.4.73, 10.0.4.73
IP:   No options
IP:   
OSPF:  ----- OSPF Header -----
OSPF:  
OSPF:  Version = 2
OSPF:  Type = DD
OSPF:  Router ID = 10.8.48.74
OSPF:  Area ID = 0.0.0.1
OSPF:  Checksum = 0xe1f7
OSPF:  Auth = None
OSPF DB:  ----- Database Description Packet -----
OSPF DB:  
OSPF DB:  Options = E
OSPF DB:  Flags = I/M/MS
OSPF DB:  Sequence = 0x404C9963

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 5 arrived at 11:01:10.00032
ETHER:  Packet size = 94 bytes
ETHER:  Destination = 1:0:5e:0:0:5, (multicast)
ETHER:  Source      = 8:0:20:bb:e:9, Sun
ETHER:  Ethertype = 0800 (IP)
ETHER:  
IP:   ----- IP Header -----
IP:   
IP:   Version = 4
IP:   Header length = 20 bytes
IP:   Type of service = 0xc0
IP:         xxx. .... = 6 (precedence)
IP:         ...0 .... = normal delay
IP:         .... 0... = normal throughput
IP:         .... .0.. = normal reliability
IP:         .... ..0. = not ECN capable transport
IP:         .... ...0 = no ECN congestion experienced
IP:   Total length = 80 bytes
IP:   Identification = 19277
IP:   Flags = 0x0
IP:         .0.. .... = may fragment
IP:         ..0. .... = last fragment
IP:   Fragment offset = 0 bytes
IP:   Time to live = 1 seconds/hops
IP:   Protocol = 89 (OSPF)
IP:   Header checksum = 7efa
IP:   Source address = 10.0.4.73, 10.0.4.73
IP:   Destination address = 224.0.0.5, 224.0.0.5
IP:   No options
IP:   
OSPF:  ----- OSPF Header -----
OSPF:  
OSPF:  Version = 2
OSPF:  Type = LSUpd
OSPF:  Router ID = 10.0.3.73
OSPF:  Area ID = 0.0.0.1
OSPF:  Checksum = 0x95b1
OSPF:  Auth = None
OSPF LSU:  ----- Link State Update Packet -----
OSPF LSU:  
OSPF LSU:  Options = E
OSPF LSU:  Sequence = 80000001 
OSPF LSU:  Age = 9672C 
OSPF LSU:  Network LSA Router = 10.0.3.73 
OSPF LSU:              Interface = 10.0.3.73 
OSPF LSU:  Mask = 255.255.255.0
OSPF LSU:  Routers:
OSPF LSU:       10.0.3.73
OSPF LSU:       10.8.48.74


Example 2: snoop verbose output for ospfv3
-----------------------------------------------

ETHER:  ----- Ether Header -----
ETHER:  
ETHER:  Packet 1 arrived at 11:42:20.00062
ETHER:  Packet size = 90 bytes
ETHER:  Destination = 33:33:0:0:0:5, (multicast)
ETHER:  Source      = 0:3:47:f1:8b:ef, 
ETHER:  Ethertype = 86DD (IPv6)
ETHER:  
IPv6:   ----- IPv6 Header -----
IPv6:   
IPv6:   Version = 6
IPv6:   Traffic Class = 0
IPv6:   Flow label = 0x0
IPv6:   Payload length = 36
IPv6:   Next Header = 89 (OSPF)
IPv6:   Hop Limit = 1
IPv6:   Source address = fe80::203:47ff:fef1:8bef
IPv6:   Destination address = ff02::5
IPv6:   
OSPFv3:  ----- OSPF Header -----
OSPFv3:  
OSPFv3:  Version = 3
OSPFv3:  Type = Hello
OSPFv3:  Router ID = 0.0.0.33
OSPFv3:  Area ID = 0.0.0.1
OSPFv3:  Checksum = 0x2865
OSPFv3:  Instance = 0
OSPF HELLO:  ----- Hello Packet -----
OSPF HELLO:  
OSPF HELLO:  Options = V6/E/R
OSPF HELLO:  Interface ID = 0.0.0.4
OSPF HELLO:  Hello interval = 10
OSPF HELLO:  Priority = 1
OSPF HELLO:  Dead interval = 40
OSPF HELLO:  Designated Router = 0.0.0.33


From sacadmin Wed Mar 24 10:29:14 2004
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Date: Wed, 24 Mar 2004 13:23:52 -0500
From: James Carlson <james.d.carlson@sun.com>
To: psarc@sac.sfbay.sun.com
cc: sowmini.varadhan@sun.com
Subject: 2004/202 Snoop OSPF Decode
Content-Length: 287

This fast-track request was approved at today's PSARC meeting.

-- 
James Carlson, IP Systems Group                <james.d.carlson@sun.com>
Sun Microsystems / 1 Network Drive         71.234W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.497N   Fax +1 781 442 1677

