On Feb 16, 2021, at 4:03 AM, Timmy Brolin <t...@hms.se> wrote:

> In practice, this is what I would propose:
> * Wireshark dissector made capable of accepting any whole-byte preamble 
> length mPackets.
> * mPacket capture devices are made responsible for detecting any frames with 
> non-integer preamble, and correct for it by adding 4 bits extra preamble at 
> the beginning. That way the dissector never has to realign a whole frame on 
> bit level.

I.e., the packet, as stored in a capture file (pcap, pcapng, whatever), will 
have somewhere between 1 and 7 octets of 0x55, followed by an SMD?

> * A capture device which has added 4 bits of preamble, shall indicate this by 
> setting the “unaligned frame error” bit in epb_flags, to let the dissector 
> know that it should ignore the least significant nibble of the first preamble 
> byte.

Why is this necessary?  Is the goal here to indicate the on-the-wire preamble 
length?  If so, why not just write 0x50 rather than 0x55 as the first octet if 
the least significant nibble is a padding nibble?

> While a mPacket with 4 bits of missing preamble is not actually an error, I 
> can think of no other meaningful use for the “unaligned frame error” bit in 
> epb_flags for mPackets. So it should be ok to make use of it for this 
> purpose? Maybe?
> Unless the “unaligned frame error” is actually intended to indicate “dribble 
> error”? (An extra 4 bit nibble at the end of a frame)

Those flags come from an example given in the documentation of the flags field 
of the pcapng Enhanced Packet Block"

        
https://pcapng.github.io/pcapng/draft-tuexen-opsawg-pcapng.html#name-enhanced-packet-block-flags

which says

        link-layer-dependent errors (Bit 31 = symbol error, Bit 30 = preamble 
error, Bit 29 = Start Frame Delimiter error, Bit 28 = unaligned frame error, 
Bit 27 = wrong Inter Frame Gap error, Bit 26 = packet too short error, Bit 25 = 
packet too long error, Bit 24 = CRC error, other?? are 16 bit enough?).

Currently, we support that flag in DOS Sniffer files; we do *not* yet interpret 
the link-layer-dependent errors in pcapng files.

And the "unaligned frame error" should perhaps be renamed "misaligned frame 
error".

See, for example, this page of an Ethernet adapter manual:

        
https://manualsdump.com/en/manuals/asante_technologies-asante_maccon_family_ethernet_network_cards_for_the_macintosh/142796/53

in which it lists various error indications, including Frame Alignment Error, 
which means the frame didn't not end in an 8 bit boundary.

That says nothing about the preamble.  It's talking about "octet-boundary 
alignment of the end of the frame", to quote section 4.1.2.1.2 "Reception 
without contention":

        ...It also checks for invalid MAC frames by inspecting the frame check 
sequence to detect any damage to the frame enroute, and by checking for proper 
octet-boundary alignment of the end of the frame. Frames with a valid FCS may 
also be checked for proper octet-boundary alignment.

So there are at least 3 reasons not to use that flag:

        1) that's not what its intended use is;

        2) it's not currently implemented in the pcapng reader;

        3) it's not available in pcap - this isn't a "pcapng decoding error", 
it's a packet decoding error, and there should be as few cases as possible 
where a packet from a pcapng file (if all the interfaces in the pcapng file 
have the same link-layer type and snapshot length) could not be written to a 
pcap file and properly decoded by a program reading the pcap file.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to