问题描述
我一直在尝试实现 gPTP 事件消息(SYNC 和/或 FOLLOW_UP)消息的入口时间戳。基本上,有两个时间敏感网络(TSN)。即。设备端和网络端,在 5GS 中实现。因此 gPTP 数据包从 NWTT-->DSTT 流出。算法应该是所有事件消息都由 NWTT 加上时间戳并发送到 DSTT。然后据此可以计算出链路延迟。
这是我的代码,在创建套接字并接收缓冲区中的数据包并将它们复制到 PTP 结构标头后,我有点卡住了。任何帮助或指导表示赞赏。
硬件时间戳需要添加到 gPTP 事件消息中。
int main() {
int sock;
sock = socket(AF_PACKET,SOCK_RAW,htons(ETH_P_1588));
if (sock == -1) {
perror("socket");
exit(EXIT_FAILURE);
}
unsigned char *buffer = (unsigned char *) malloc(65537);
memset(buffer,65537);
struct sockaddr sockaddr;
int sockaddr_len = sizeof(sockaddr);
int buffer_len;
buffer_len = recvfrom(sock,buffer,65537,&sockaddr,(socklen_t *) &sockaddr_len);
if (buffer_len == -1) {
perror("recvfrom");
exit(EXIT_FAILURE);
}
struct timespec ts;
clock_gettime(CLOCK_REALTIME,(struct timespec *) &ts);
struct ptpv2_header *ptpv2Header = (struct ptpv2_header *) buffer;
// Todo
return EXIT_SUCCESS;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)