MIKE HIGGINBOTTOM

A Digital Garden - frequent growth but a bit weedy in the back corner

ARPTopicTerms

Row vs shape

A row is one exact set of field values. There are 2,430, one for every possible combination of the fields above, whether it makes sense or not, which is why the Full List Of All ARP Field Combinations is useful for fuzzing. A row topic carries almost nothing of its own, just a Fits list naming the shapes it belongs to.

A shape is a named kind of packet. It groups the rows that count as the same packet, and they may differ in any field that doesn’t change what the packet is. There are 52, each with a family, its rows, a Profile, filters and notes. GratuitousARPReply, for example, covers ARPFieldComboRow511, ARPFieldComboRow521 and ARPFieldComboRow531, which differ only in Target MAC (unicast, ff:ff:ff:ff:ff:ff or 00:00:00:00:00:00). A receiver treats all three alike, so its Profile leaves Target MAC out and its filters don’t test it, and one filter catches all three.

Every valid row is in exactly one shape, and an invalid row breaking several rules fits a shape for each. So a row is the raw data and a shape is the name and meaning given to a set of rows. Notes about what a packet is or does belong on the shape, and a row topic is for anything true of that one exact combination only.