You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.8 KiB
C

/****************************************************************************
** File name : HTIEEE1588V2.h
** Description : IEEE1588 v2 Ptp timer protoclo api
** Create date : 2019.09.01
** Auther by : Liuyx
** Version info : V1.0.01
** Copyright (C) 2002-2019 xi'an huatek, Inc Co., Ltd
** Update record:
** DATE AUTHER DESC
** -------------------------------------------------------------------------
** 2019.09.01 Liuyx first build
****************************************************************************/
#ifndef __HT_IEEE1588_V2_H
#define __HT_IEEE1588_V2_H
#include "HTGlobal.h"
/* ether_header */
//#include <netinet/if_ether.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct ptp_header {
uint8_t ptp_ts : 4, /*transportSpecific*/
ptp_type : 4; /*messageType*/
uint8_t ptp_v; /*versionPTP (4 bits in size)*/
uint16_t ptp_ml; /*messageLength*/
uint8_t ptp_dn; /*domainNumber*/
uint8_t ptp_res; /*reserved*/
uint16_t ptp_flags; /*flags*/
uint64_t ptp_cf; /*correctionField*/
uint32_t ptp_res2; /*reserved*/
uint8_t ptp_src[10]; /*sourcePortIdentity,8 byte mac,2 byte portId*/
uint16_t ptp_sid; /*sequenceId*/
uint8_t ptp_ctlf; /*controlField*/
uint8_t ptp_lmi; /*logMessageInterval*/
} ST_PTP_HEADER; // __attribute__((__packed__));
typedef struct pkt_ptp {
//struct ether_header eh;
ST_PTP_HEADER ph;
uint64_t s : 48;
uint32_t ns;
} ST_PKT_PTPS; // __attribute__((__packed__));
enum ptp_msg_type
{
SYNC = 0x0,
DELAY_REQ = 0x1,
FOLLOW_UP = 0x8,
DELAY_RESP = 0x9,
};
#ifdef __cplusplus
}
#endif
#endif /* end __HT_IEEE1588_V2_H */