gPTP Master 报文的源 MAC 地址

1. 标准答案

报文类型 源 MAC 地址 说明

Sync FPGA-PL Port12 的单播 MAC 发送端口的物理 MAC

Follow_Up FPGA-PL Port12 的单播 MAC 与 Sync 相同

结论 :Sync 和 Follow_Up 的源 MAC 地址相同,都是发送该报文的物理端口(FPGA-PL Port12)的单播 MAC 地址。

2. 报文结构对比

复制代码
gPTP 报文帧结构 (Ethernet Layer 2):

┌─────────────────┬─────────────────┬─────────────┬──────────────────┐
│   目的 MAC      │    源 MAC       │  EtherType  │     PTP Payload    │
├─────────────────┼─────────────────┼─────────────┼──────────────────┤
│ 01-80-C2-00-00- │ FPGA-PL Port12  │   0x88F7    │  Sync / Follow_Up │
│       0E        │  的单播 MAC     │  (PTP协议)  │  / Announce ...   │
│  (多播地址)      │  (例如: 00-1A...)│             │                   │
└─────────────────┴─────────────────┴─────────────┴──────────────────┘

关键区别:

  • 目的 MAC = 01-80-C2-00-00-0E(多播,所有 PTP 设备接收)
  • 源 MAC = 发送端口的单播 MAC(标识具体的 Master 设备)

3. 在当前拓扑中的对应关系

复制代码
FPGA-PL (gPTP Master)
├─ Port12 (XFI 10Gbps)
│   ├─ MAC 地址: 00:1A:2B:3C:4D:5E (示例)
│   │           ↑ 这是源 MAC
│   │
│   └─ 发送 Sync/Follow_Up
│       │
│       ▼
SWITCH1 Port12 (接收)
├─ 识别源 MAC: 00:1A:2B:3C:4D:5E
├─ 识别目的 MAC: 01-80-C2-00-00-0E
├─ 判断: 这是 PTP 报文 → 转发到所有 PTP 使能端口
└─ 更新 CF (Correction Field)

4. 源 MAC 的具体值

4.1 如何查看 FPGA-PL 的 MAC 地址

复制代码
# 方法1: 通过 ethtool 查看永久 MAC
$ ethtool -P eth0
Permanent address: 00:1a:2b:3c:4d:5e

# 方法2: 通过 ifconfig/ip 查看当前 MAC
$ ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff

# 方法3: 读取 sysfs
$ cat /sys/class/net/eth0/address
00:1a:2b:3c:4d:5e

4.2 FPGA 板卡的 MAC 地址来源

来源 说明

EEPROM/Flash 出厂烧录的 OUI + 唯一序列号

FPGA 设计 通过 RTL 代码硬编码

软件配置 启动脚本通过 ifconfig 设置

Bootloader U-Boot 传递的设备树参数

5. 为什么 Sync 和 Follow_Up 源 MAC 相同?

复制代码
时间轴:
T1 ─┤ FPGA-PL 发送 Sync (源 MAC = 00:1A:2B:3C:4D:5E)
    │   │
    │   └── 报文内容:
    │       ├─ 目的 MAC: 01-80-C2-00-00-0E
    │       ├─ 源 MAC: 00:1A:2B:3C:4D:5E  ← 同一个端口
    │       └─ PTP 类型: Sync (0x0)
    │
T1'─┤ FPGA-PL 发送 Follow_Up (源 MAC = 00:1A:2B:3C:4D:5E)
    │   │
    │   └── 报文内容:
    │       ├─ 目的 MAC: 01-80-C2-00-00-0E
    │       ├─ 源 MAC: 00:1A:2B:3C:4D:5E  ← 同一个端口!
    │       └─ PTP 类型: Follow_Up (0x8)
    │       └─ 携带 T1 精确时间戳

原因:

  • Sync 和 Follow_Up 是一对报文 ,由同一个端口发送
  • 在 two-step 模式下,Follow_Up 紧接着 Sync 发送
  • 两个报文的目的 MAC 相同,源 MAC 也相同

6. 交换机如何处理源 MAC?

复制代码
SWITCH1 (BCM89586) 接收到 Sync/Follow_Up 后的处理:

1. 读取目的 MAC = 01-80-C2-00-00-0E
   └─ 判断: 这是 PTP 多播地址,需要特殊处理

2. 读取源 MAC = 00:1A:2B:3C:4D:5E
   └─ 记录: 这是 PTP GrandMaster 的 MAC
   └─ 用于: 后续构建转发表/过滤表

3. PTP 引擎处理:
   ├─ Port12 (Slave Port) 接收
   ├─ 测量进入时间 (t_rx)
   ├─ 计算驻留时间 (residence = t_tx - t_rx)
   ├─ 更新 CF (Correction Field)
   └─ 泛洪到所有 Master 端口 (Port0~11, 16, 14)

4. 转发时:
   ├─ 源 MAC 保持不变 (还是 00:1A:2B:3C:4D:5E)
   ├─ 目的 MAC 保持不变 (还是 01-80-C2-00-00-0E)
   └─ CF 值被更新 (加上本交换机的驻留时间)

重要 :交换机在转发时不会修改源 MAC,只是更新 CF 字段。

7. 抓包验证

复制代码
# 抓取 gPTP 报文,显示源/目的 MAC
$ tcpdump -i eth0 -e -vvv ether proto 0x88f7

# 预期输出:
# 14:30:01.123456 00:1a:2b:3c:4d:5e > 01:80:c2:00:00:0e, ethertype PTP (0x88f7), length 64
#   PTPv2, Sync message, length 44
#   domain 0, correction 0ns
#
# 14:30:01.123500 00:1a:2b:3c:4d:5e > 01:80:c2:00:00:0e, ethertype PTP (0x88f7), length 64
#   PTPv2, Follow_Up message, length 44
#   domain 0, originTimestamp: 1725123456.123456789

# 注意:
# - 源 MAC 始终是 00:1a:2b:3c:4d:5e (FPGA-PL 的 MAC)
# - 目的 MAC 始终是 01:80:c2:00:00:0e (PTP 多播)

8. 常见误区

误区 正确理解

9. 一句话总结

gPTP Master (FPGA-PL) 发送的 Sync 和 Follow_Up 报文,源 MAC 地址都是 FPGA-PL Port12 端口的单播 MAC 地址(如 00:1A:2B:3C:4D:5E**),目的 MAC 地址都是** 01-80-C2-00-00-0E**(PTP 多播)。交换机在转发过程中不会改变源 MAC,只会更新 CF 字段。**

相关推荐
俊基科技4 小时前
A-59P 多功能语音处理模组:一芯集成 AI 降噪、消回音与波束成形,重塑全双工通话体验
嵌入式硬件·硬件开发·ai降噪·语音模块·回音消除
POMAGTOR4 小时前
硬件接口选型|磁吸式连接器原理与应用,不止磁吸充电
网络·嵌入式硬件·电脑
2501_922639584 小时前
率能半导体 SS6226双通道直流电机驱动芯片:7.2V/1.4A双路,覆盖玩具、小家电、直流有刷电机三大应用场景
单片机·嵌入式硬件·硬件工程
LCG米4 小时前
STM32时钟树配置实测:HSE起振失败回退HSI、PLL分频倍频计算与Flash等待周期陷阱
stm32·单片机·嵌入式硬件·嵌入式
巴巴媛6665 小时前
【Debug1】程序死机,while(1)循环,怎么办?
c语言·笔记·stm32·嵌入式硬件·bug
Lxx_Zw5 小时前
PID 用顺了,然后呢:增强手术与前馈
c语言·stm32·单片机·嵌入式硬件
张怀民3166 小时前
PFC_CCM_NCP1654详讲
单片机·嵌入式硬件·硬件工程·pfc
linweidong6 小时前
RTC 走偏、时间跳变?嵌入式时间管理的工程避坑
嵌入式硬件·面试·实时音视频·rtc·嵌入式面经·嵌入式ntp·嵌入式对时
Yiran_G7 小时前
ZigBee单播、广播与组播详解:从寻址机制到批量控制设计
嵌入式硬件·物联网·智能家居
youcans_7 小时前
【STM32C5教程】(9)DAC 模拟量信号输出实验
stm32·单片机·嵌入式硬件·stm32c5·cubemx2