((Field )( frag, Parse_Frag ))
((Field )( ttl, Parse_8bit ))
((Field )( protocol, Parse_8bit ))
- ((Field )( crc, Parse_16bit ))
+ ((Field )( checksum, Parse_16bit ))
((Field )( source, Parse_Addr ))
((Field )( destination, Parse_Addr )) );
Parse_Frag frag() const;
Parse_8bit ttl() const;
Parse_8bit protocol() const;
- Parse_16bit crc() const;
+ Parse_16bit checksum() const;
Parse_Addr source() const;
Parse_Addr destination() const;
void init() {
version() = 4;
+ // We don't support option headers at the moment ...
+ ihl() = 5;
+ }
+
+ boost::uint16_t calcChecksum() const;
+ bool validateChecksum() const {
+ return checksum() == calcChecksum();
}
};
{ return p->protocol(); }
static void dump(packet p, std::ostream & os);
+ static void finalize(packet p);
};
/** \brief IpV4 packet typedef */