Can you gzip the patches, some MUAs (e.g. google mail) mangle the text
attachments in a way that patches become unusable.

Luis.

On 4/13/07, Florian Lohoff <[EMAIL PROTECTED]> wrote:
>
> Hi,
> i took the time to polish the redback dissector a little and decode some
> more protocols:
>
>
> Index: epan/dissectors/packet-redback.c
> ===================================================================
> --- epan/dissectors/packet-redback.c    (revision 21405)
> +++ epan/dissectors/packet-redback.c    (working copy)
> @@ -6,7 +6,7 @@
>   * By Gerald Combs <[EMAIL PROTECTED]>
>   *
>   * Start of RedBack SE400/800 tcpdump trace disassembly
> - * Copyright 2005,2006 Florian Lohoff <[EMAIL PROTECTED]>
> + * Copyright 2005-2007 Florian Lohoff <[EMAIL PROTECTED]>
>   *
>   * This program is free software; you can redistribute it and/or
>   * modify it under the terms of the GNU General Public License
> @@ -41,6 +41,7 @@
>  static dissector_handle_t eth_handle;
>  static dissector_handle_t clnp_handle;
>  static dissector_handle_t arp_handle;
> +static dissector_handle_t ppp_handle;
>
>  /* wrapper for passing the PIC type to the generic ATM dissector */
>  static void
> @@ -81,47 +82,58 @@
>                              "Layer3 Offset: %u", l3off);
>    tisub = proto_tree_add_text (subtree, tvb, 22, 2,
>                              "Data Offset: %u", dataoff);
> -  next_tvb = tvb_new_subset(tvb, l3off, -1, -1);
>
>    /* Mark the gap as "Data" for now */
>    if (dataoff > l3off) {
>         proto_tree_add_text (subtree, tvb, 24, l3off-24, "Data (%d bytes)", 
> l3off-24);
>    }
>
> -  /*
> -   * Just a guess - In case we see a difference in dataoff vs l3off
> -   * we assume there is an ethernet header. Traces from an OC12 didnt
> -   * show any header in here
> -   */
> -  if (dataoff > l3off) {
> -    call_dissector(eth_handle, next_tvb, pinfo, tree);
> -  } else {
> -    switch(proto) {
> -      case 0x01:
> +  switch(proto) {
> +    case 0x01:
>          /*
>          * IP - We assume IPv6 has a different protocol although
>          * i might be wrong - Havent seen any traces
>          */
> -        call_dissector(ipv4_handle, next_tvb, pinfo, tree);
> -        break;
> -      case 0x02:
> +      next_tvb = tvb_new_subset(tvb, dataoff, -1, -1);
> +      call_dissector(ipv4_handle, next_tvb, pinfo, tree);
> +      break;
> +    case 0x02:
>         /*
>          * It is CLNP although it seem the Packet Asic fills
>          * some data in the packet so we have a "broken" packet in
>          * the trace
>          */
> -        call_dissector(clnp_handle, next_tvb, pinfo, tree);
> -        break;
> -      case 0x03: /* Unicast Ethernet tx - Seen with PPPoE PADO */
> -      case 0x04: /* Unicast Ethernet rx - Seen with ARP  */
> -      case 0x08: /* Broadcast Ethernet rx - Seen with PPPoE PADI */
> -        call_dissector(eth_handle, next_tvb, pinfo, tree);
> -        break;
> -      default:
> -       tisub = proto_tree_add_text (subtree, tvb, 24, length-24,
> +      next_tvb = tvb_new_subset(tvb, l3off, -1, -1);
> +      call_dissector(clnp_handle, next_tvb, pinfo, tree);
> +      break;
> +    case 0x06:
> +
> +      /* HACK This is a guess - i dont know what this flag means
> +       * but my best guess is that it means "incoming" e.g.
> +       * the direction of the packet. In case of incoming PPP
> +       * packets there seems to be some padding which does
> +       * not get reflected in the l3off/dataoff
> +       */
> +
> +      if (flags & 0x00400000) {
> +        next_tvb = tvb_new_subset(tvb, l3off, -1, -1);
> +      } else {
> +       proto_tree_add_text (subtree, tvb, l3off, 4, "Unknown Data (%d 
> bytes)", 4);
> +        next_tvb = tvb_new_subset(tvb, l3off+4, -1, -1);
> +      }
> +
> +      call_dissector(ppp_handle, next_tvb, pinfo, tree);
> +      break;
> +    case 0x03: /* Unicast Ethernet tx - Seen with PPPoE PADO */
> +    case 0x04: /* Unicast Ethernet rx - Seen with ARP  */
> +    case 0x08: /* Broadcast Ethernet rx - Seen with PPPoE PADI */
> +      next_tvb = tvb_new_subset(tvb, l3off, -1, -1);
> +      call_dissector(eth_handle, next_tvb, pinfo, tree);
> +      break;
> +    default:
> +      tisub = proto_tree_add_text (subtree, tvb, 24, length-24,
>                                 "Unknown Protocol Data %u", proto);
> -        break;
> -    }
> +      break;
>    }
>    return;
>  }
> @@ -147,6 +159,7 @@
>    eth_handle = find_dissector("eth_withoutfcs");
>    clnp_handle = find_dissector("clnp");
>    arp_handle = find_dissector("arp");
> +  ppp_handle = find_dissector("ppp");
>
>    redback_handle = create_dissector_handle(dissect_redback, proto_redback);
>    dissector_add("wtap_encap", WTAP_ENCAP_REDBACK, redback_handle);
>
>
> Flo
> --
> Florian Lohoff                  [EMAIL PROTECTED]             +49-171-2280134
>         Those who would give up a little freedom to get a little
>           security shall soon have neither - Benjamin Franklin
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.1 (GNU/Linux)
>
> iD8DBQFGH3aaUaz2rXW+gJcRAlqnAKDYNRmZ9Ncml3hfDFnLnqf7BSib+ACgzteO
> 9mJeGSiuxwmpiDbeurSM8e0=
> =i3yd
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Wireshark-dev mailing list
> [EMAIL PROTECTED]
> http://www.wireshark.org/mailman/listinfo/wireshark-dev
>
>


-- 
This information is top security. When you have read it, destroy yourself.
-- Marshall McLuhan
_______________________________________________
Wireshark-dev mailing list
[EMAIL PROTECTED]
http://www.wireshark.org/mailman/listinfo/wireshark-dev

Reply via email to