- new method: fieldFlags() - isCksum, isMeta; Note: isMeta is a flag now not a attrib
- fieldData() bit fields are now in lsb not msb - protocolFrameValue() and subclasses changed accordingly
- protocolFrameValue() now takes an additional bool param indicating whether the frameValue is being requested for a checksum calculation; if so fields which are checksum fields are assumed to be zero and their value is not fetched to prevent infinite recursion
- Other Protocols
- mac: srcMac/dstMac modes is now working
- vlan: implemented VLAN protocol
- ip4: src/dst Addr modes is now working
- udp/tcp: checksum done
- Basic testing done for MAC, VLAN, IPv4, UDP and TCP protocols
- sample protocol: .cpp/.h added to repos - need to be made compilable
- StreamConfigDialog
- Redesigned the protocol selection tab to accomodate "Advanced Protocol Selection"
- L2 Tab config widgets are now in 2 columns
- Packet Tree View is no longer collapsed if selected protocols don't change
- New Classes:
o ProtocolManager - singleton with which all protocols register
o ProtocolCollection - Aggregates all registered protocols; exports methods to work on all protocols
o StreamBase - aggregates ProtocolCollection with Stream Core and Control; the client/server side stream classes now derive from StreamBase leading to major reduction in their code (more cleanup pending)
- AbstractProtocol now supports the additional methods
o createInstance()
o protocolFrameSize()
o protocolFrameOffset(), protocolFramePayloadSize()
o protocolId(), payloadProtocolId()
o protocolFrameCksum(), protocolFramePayloadCksum()
0 constructor takes an extra param - frameProtoList
- Specific protocols - eth2, llc, snap, ip4, udp, tcp now return length, protocol id and cksums correctly (tcp/udp cksum pending)
- StreamConfigDialog - protocol controls for length, cksum and protocolid are automatically updated (not fully working yet)