/** * https://ciapini.wiki.esiliati.org/view/ArNet */ #ifndef ARNET_HEADER_FIELDS_H #define ARNET_HEADER_FIELDS_H // tutti gli header #define ALLH_HTYPE_MASK 0xF0000000 // id del tipo di header #define HTYPE_DH_VALUE 0x0 #define HTYPE_VC_VALUE 0x1 #define HTYPE_EC_VALUE 0x2 #define HTYPE_TIMEH_VALUE 0x3 // default header #define DH_SRC_MASK 0x0000FF00 #define DH_DST_MASK 0x000000FF #define DH_HEADERSIZE_MASK 0x3C000000 #define DH_PAYLOADSIZE_MASK 0x03FF0000 #define DH_PROTOCOL_MASK 0xC0000000 // VC Header #define VC_VCI_MASK 0x03FF0000 #define VC_SEQ_MASK 0x0000FF00 #define VC_ACKSEQ_MASK 0x000000FF // CRC header #define EC_ALGO_MASK 0x0C000000 #define EC_ARQ_MASK 0x02000000 #define EC_ACK_MASK 0x01000000 #define EC_VALUE_MASK 0x00FFFFFF #define EC_ALGO_CRC24 00 // SAAH #define SAAH_TFRAME_MASK 0x0FF00000 #define SAAH_SEGADDR_MASK 0x000FF000 #define SAAH_CHANLOAD_MASK 0x00000FF0 #define SAAH_CONGCLIENT_MASK 0x0000000F // GRTH #define GRTH_TTL_MASK 0x0F000000 #define GRTH_FECN_MASK 0x0F000000 #define GRTH_BECN_MASK 0x0F000000 #define GRTH_SEGSRC_MASK 0x0000FF00 #define GRTH_SEGDST_MASK 0x0F0000FF #endif /* ARNET_HEADER_FIELDS_H */