1.linux内核打戳查看

(1)打戳模式设置:

代码文件:     sk.c           ->   socket.c        sock.c

函数接口:    setsockopt -> setsockopt     sock_setsockopt

代码位置:     PTP代码    -》     内核代码

作用:设置软硬件时间戳,发送接收时间戳;

(2)recvmsg调用UDP:

recvmsg -> __sys_recvmsg -> sock_recvmsg_nosec -> __sock_recvmsg_nosec

-> sock->ops->recvmsg -> udp_recvmsg (udp.c) -> ip_recv_error

sock_recv_timestamp -> __sock_recv_timestamp -> skb_get_timestampns  / skb_hwtstamps(skb),skb_shared_info->hwtstamp

这里,应该是组合报文,把skb结构带的时间戳取出来,放在消息里,扔给上层;(ERR队列报文)

变量(软/硬) : sk skb ts / hwtstamp ->> msg

数据结构 : socket sk_buff tstamp / skb_shared_info->hwtstamps ->> msghdr

2.取时戳

软时戳:sk(sk_error_queue) >>> skb->tstamp >>> msg

硬时戳:sk(sk_error_queue) >>> skb_shared_info->hwtstamps (skb 的end后面skb_shared_info中)

skbuff.h有说明,这三个时戳源头;skb_shared_hwtstamps

说明:用的sk的sk_error_queue队列,存储时戳的;

所有查出这个队列,把它赋给skb,skb自带时戳,取出时戳,最终给msg,返回msg给上层;

3.放时戳

要求,sk给mac之前,把调用把时戳写上;(skbuff.h L2255)

(1)发送数据包时,记录时戳;

路径1:cpsw_netdev_ops -> cpsw_ndo_start_xmit -> skb_tx_timestamp -> sw_tx_timestamp -> skb_tstamp_tx

路径2:cpsw_probe ---> cpsw_tx_handler -> cpts_tx_timestamp -> 一样

检查!!!!感觉和下面接收不一样,接收一样的路径也有个发送时戳

感觉应该是SW,因为CPTS没使能,没用硬件PTP;下面的软件时戳也需要重新找;

skb_tstamp_tx (skbuff.c)

硬件用入参hwtstamps,

软件时戳直接此时读取时间,二者只记录一个时戳;

(2)接收数据包时,记录时戳:

cpsw_rx_handler -> netif_receive_skb -> net_timestamp_check -> __net_timestamp

Linux报文硬件时间戳,linux 时间戳,打戳代码分析,用于PTP报文协议(示例代码)...相关推荐

  1. linux查看显卡核心数,linux查看硬件信息,linux查看硬盘信息,linux查看CPU信息,linux查看显卡,硬件型号信息 | 帮助信息-动天数据...

    linux查看硬件信息,linux查看硬盘信息,linux查看CPU信息,linux查看显卡,硬件型号信息 作者:dthost | 时间:2015-09-30 | 8,325 次阅读 linux服务器 ...

  2. linux的硬件系统管理,Linux 系统硬件管理的基础知识(四)

    以下主要介绍我的***次安装Linux系统遭遇,以及怎么度过这个遭遇的,希望对大家有所帮助.不喜欢的可以略过.以下接<Linux 系统硬件管理的基础知识(三)>. 四.关于存储设备的不同的 ...

  3. linux检测硬件驱动,linux查看硬件信息及驱动设备相关整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 联系我登录 首页 业界新闻 技术文章 资源分享 微语 linux查看硬件信息及驱动设备相关整理[转] 蓝猫 发布于:2014-5-30 17:48 分类: ...

  4. linux 查看硬件 工具,linux下查看硬件信息方法

    想知道怎么查看电脑的硬件信息吗,下面是学习啦小编带来linux下查看硬件信息方法的内容,欢迎阅读! linux下查看硬件信息方法: 建议直接进主板的bios查看硬件信息 linux的话看具体什么版本了 ...

  5. linux关闭硬件蜂鸣器,linux 关闭主板上的蜂鸣器声音

    Android中隐藏顶部状态栏的那些坑--Android开发之路3 Android中隐藏顶部状态栏的那些坑 先看看常规的隐藏状态栏的方法: 方法一: @Override protected void ...

  6. linux底层硬件需求,Linux系统的硬件设备驱动的底层结构讲解

    什么是驱动?最通俗的解释就是"驱使硬件设备行动" 作用?设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询.中断处理.DMA通信,进行物理内存向 ...

  7. windows 和linux查看硬件信息,Linux下如何查看硬件信息?

    我们在 Linux 下进行开发时,有时也需要知道当前的硬件信息,比如:CPU几核?使用情况?内存大小及使用情况?USB设备是否被识别?等等类似此类问题.下面良许介绍一些常用的硬件查看命令. lshw ...

  8. linux更新硬件时钟,Linux内核“11分钟模式”可以做的最大的硬件时钟更新是什么?...

    当某些与时间相关的程序(如ntpd)在 Linux系统上运行时,内核将切换到所谓的"十一分钟模式"(参见hwclock手册页),它将自动从系统时钟更新硬件时钟十一分钟 在SLES1 ...

  9. linux mint 硬件配置,Linux Mint 12安装之后的几点配置

    Linux Mint 12安装之后的几点配置: 1, 语言支持 在 "系统设置" 中点开 "语言" , 会自动搜索,下载所有语言支持包. 或者在 mintIns ...

  10. linux 获取硬件时间,Linux的硬件时间及系统时间调用流程--转自网络

    事实上在Linux中有两个时钟系统,分别是系统时间和硬件时间 UTC是协调世界时(Universal Time Coordinated)英文缩写,它比北京时间早8个小时. 二)date date可以打 ...

最新文章

  1. Hbase 和 MySQL 的区别是什么?一文深度对比!
  2. godaddy 管理mysql_在godaddy上使用MySQL和Entity Framework的安全例...
  3. geoserver2.15安装教程
  4. 深度学习之基于卷积神经网络实现花朵识别
  5. 2018百度之星程序设计大赛 - 资格赛 P1006三原色图(MST,并查集)
  6. 解决NetworkOnMainThreadException
  7. 优酷ts转换mp4_下载腾讯视频并转成MP4
  8. atitit.按钮光标滑过高亮切换以及其他动态效果的实现css html js --attilax总结
  9. python爬虫技术作用_大数据爬虫技术有什么功能
  10. 二元一次方程用计算机怎么解,二元一次方程的解法
  11. Bootstrap---dateTimePicker时间控件配置与应用
  12. 16个精美的 HTML5 作品集网站设计案例
  13. 如何做一个基于微信积分商城小程序系统毕业设计毕设作品
  14. mysql简述cs结构与bs结构的区别_什么是BS和CS结构?
  15. 批量检查pdb数据库某些蛋白质的pdb文件是否存在
  16. GTX1050安装cuda10.2配置pytorch正确指令
  17. 华为牛人的十年工作感悟
  18. 《吴忠与富富平》之一:秦统一前后的吴忠及秦汉对吴忠地区的开发
  19. day1 -- ELMO语言模型
  20. 聚播群控微信二次开发sdk完整API

热门文章

  1. 博客园模板--博客园老牛大讲堂
  2. 《机电传动控制》第三次作业
  3. http://www.guokr.com/blog/475765/
  4. 关于PV,流量和带宽
  5. java poi 读取Excel中的手机号
  6. Coolite Toolkit学习笔记二:服务器端Alert,Confirm,Prompt
  7. 为qt程序添加ico图标
  8. unity使用屏幕后处理实现闪烁特效,创建新的shader文件过程
  9. java根据url下载文件
  10. Linux 开源 ssh 工具,【原创开源】jssh linux scp ssh 免密登录工具