Files
arnet/arnet_header_fields.h
2022-10-24 19:21:04 +02:00

56 lines
1.2 KiB
C

/**
* 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 */