diff -Naur wireshark-1.2.2.old/epan/dissectors/packet-bgp.c wireshark-1.2.2/epan/dissectors/packet-bgp.c
--- wireshark-1.2.2.old/epan/dissectors/packet-bgp.c	2009-09-18 19:57:03.000000000 +0200
+++ wireshark-1.2.2/epan/dissectors/packet-bgp.c	2009-09-18 20:01:36.000000000 +0200
@@ -183,6 +183,7 @@
     { BGPTYPE_NEW_AS_PATH, "NEW_AS_PATH" },
     { BGPTYPE_NEW_AGGREGATOR, "NEW_AGGREGATOR" },
     { BGPTYPE_SAFI_SPECIFIC_ATTR, "SAFI_SPECIFIC_ATTRIBUTE" },
+    { BGPTYPE_COS_PARAMETER, "COS_PARAMETER" },
     { 0, NULL }
 };
 
@@ -387,6 +388,8 @@
 static gint ett_bgp_option = -1;        /* an optional parameter tree */
 static gint ett_bgp_extended_communities = -1; /* extended communities list tree */
 static gint ett_bgp_ext_com_flags = -1; /* extended communities flags tree */
+static gint ett_bgp_cos_parameter = -1;
+static gint ett_bgp_cos_parameter_flags = -1;
 static gint ett_bgp_ssa = -1;		/* safi specific attribute */
 static gint ett_bgp_ssa_subtree = -1;	/* safi specific attribute Subtrees */
 static gint ett_bgp_orf = -1; 		/* orf (outbound route filter) tree */
@@ -1795,7 +1798,15 @@
                         tlen + aoff,
                         plurality(tlen + aoff, "", "s"));
                 break;
-
+            case BGPTYPE_COS_PARAMETER:
+		if (tlen %28 != 0)
+		    break;
+                ti = proto_tree_add_text(subtree,tvb,o+i,tlen+aoff,
+                        "%s: (%u byte%s)",
+                        val_to_str(bgpa.bgpa_type,bgpattr_type,"Unknown"),
+                        tlen + aoff,
+                        plurality(tlen + aoff, "", "s"));
+                break;
 	    default:
 	    default_attribute_top:
 		ti = proto_tree_add_text(subtree, tvb, o + i, tlen + aoff,
@@ -2410,6 +2421,64 @@
                         }
                 }
                 break;
+
+
+            case BGPTYPE_COS_PARAMETER:
+		if (tlen %28 != 0)
+		    proto_tree_add_text(subtree3, tvb, o + i + aoff, tlen, "CoS-Parameter attribute (invalid) : %u byte%s", tlen,
+                                plurality(tlen, "", "s"));
+                else {
+                        q = o + i + aoff ;
+                        end = o + i + aoff + tlen ;
+                        ti = proto_tree_add_text(subtree2,tvb,q,tlen, "Carried CoS-Parameters");
+                        subtree3 = proto_item_add_subtree(ti,ett_bgp_cos_parameter);
+
+                        while (q < end) {
+                              ti = proto_tree_add_text(subtree3,tvb,q,28, "PHB: 0x%04X",tvb_get_ntohs(tvb,q));
+
+                              subtree4 = proto_item_add_subtree(ti,ett_bgp_cos_parameter);
+                              
+                              /* figure out flags */
+                              ep_strbuf_truncate(junk_emstr, 0);
+                              if (tvb_get_guint8(tvb,q+2) & 0x80) {
+                                   ep_strbuf_append(junk_emstr, "Global, ");
+                              } else {
+                                   ep_strbuf_append(junk_emstr, "NLRI-specific, ");
+                              }
+                              if (tvb_get_guint8(tvb,q+2) & 0x40) {
+                                   ep_strbuf_append(junk_emstr, "Remarking");
+                              } else {
+                                   ep_strbuf_append(junk_emstr, "Dropping");
+                              }
+                  	      ti = proto_tree_add_text(subtree4, tvb,q+2,1,
+                  		    "Flags: 0x%02x (%s)", tvb_get_guint8(tvb,q+2), junk_emstr->str);
+                  	      subtree5 = proto_item_add_subtree(ti, ett_bgp_cos_parameter_flags);
+
+                              /* add flag bitfield subtrees */
+                  	      proto_tree_add_text(subtree5, tvb,q+2, 1, "%s", decode_boolean_bitfield(tvb_get_guint8(tvb,q+2),
+                  			0x80, 8, "Global", "NLRI-specific"));
+                  	      proto_tree_add_text(subtree5, tvb,q+2, 1, "%s", decode_boolean_bitfield(tvb_get_guint8(tvb,q+2),
+                  			0x40, 8, "Remarking of exceeding Traffic", "Dropping of exceeding Traffic"));
+
+			      ti = proto_tree_add_text(subtree4, tvb, q+3, 1,
+						    "Reserved: 0x%02x", tvb_get_guint8(tvb,q+3));
+			      ti = proto_tree_add_text(subtree4, tvb, q+4, 4,
+						    "ASN of sending AS: %d", tvb_get_ntohl(tvb, q+4));
+			      ti = proto_tree_add_text(subtree4, tvb, q+8, 4,
+						    "Token Bucket Rate: %8.3f", tvb_get_ntohieee_float(tvb, q+8));
+			      ti = proto_tree_add_text(subtree4, tvb, q+12, 4,
+						    "Token Bucket Size: %8.3f", tvb_get_ntohieee_float(tvb, q+12));
+			      ti = proto_tree_add_text(subtree4, tvb, q+16, 4,
+						    "Peak Data Rate: %8.3f", tvb_get_ntohieee_float(tvb, q+16));
+			      ti = proto_tree_add_text(subtree4, tvb, q+20, 4,
+						    "Minimum Policed Unit: %d", tvb_get_ntohl(tvb, q+20));
+			      ti = proto_tree_add_text(subtree4, tvb, q+24, 4,
+						    "Maximum Packet Size: %d", tvb_get_ntohl(tvb, q+24));
+                            q = q + 28;
+                        }
+                }
+                break;
+
 	    case BGPTYPE_SAFI_SPECIFIC_ATTR:
 		q = o + i + aoff;
 		end = o + i + aoff + tlen ;
@@ -3118,6 +3187,8 @@
       &ett_bgp_option,
       &ett_bgp_extended_communities,
       &ett_bgp_ext_com_flags,
+      &ett_bgp_cos_parameter,
+      &ett_bgp_cos_parameter_flags,
       &ett_bgp_ssa,
       &ett_bgp_ssa_subtree,
       &ett_bgp_orf,
diff -Naur wireshark-1.2.2.old/epan/dissectors/packet-bgp.h wireshark-1.2.2/epan/dissectors/packet-bgp.h
--- wireshark-1.2.2.old/epan/dissectors/packet-bgp.h	2009-09-18 19:57:02.000000000 +0200
+++ wireshark-1.2.2/epan/dissectors/packet-bgp.h	2009-09-18 20:01:31.000000000 +0200
@@ -163,6 +163,7 @@
 #define BGPTYPE_NEW_AS_PATH        17 /* draft-ietf-idr-as4bytes */
 #define BGPTYPE_NEW_AGGREGATOR     18 /* draft-ietf-idr-as4bytes */
 #define BGPTYPE_SAFI_SPECIFIC_ATTR 19 /* draft-kapoor-nalawade-idr-bgp-ssa-00.txt */
+#define BGPTYPE_COS_PARAMETER     255 /* draft-knoll-idr-cos-interconnect */
 
 /* Extended community type */
 /* according to IANA's number assignment at: http://www.iana.org/assignments/bgp-extended-communities */

