MAC与PHY的接口GMII RGMII SGMII Serdes

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

GMII,RGMII,SGMII,TBI,RTBI接口信号及时序介绍
GMII、SGMII和SerDes的区别和联系
求问怎么实现1000base-x光口
MII、RMII、GMII接口的详细介绍
了解与MDIO/MDC接口相关的22号、45号条款
RGMII布线指导 RGMII Layout Guide
IMX6与88E1111 RGMII连线工程问题
AM335x网络分析+KSZ9031分析(uboot中ping不通问题)
RGMII接口(KSZ9031)
SGMII、1000BASE-X、1000BASE-T区别
如何玩儿转千兆以太网?1000BASE-T1是1000BASE-T的升级版吗?信号地如何接到PE?

PHY结构

以88e1111为例,Symbol encoder/decoder即PCS,
200

MAC的结构

以zynqmp为例,
201

GMII/RGMII

GMII/RGMII不经过MAC的PCS,所以需要PHY来实现PCS。 GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。GMII接口数据结构符合IEEE以太网标准。该接口定义见IEEE 802.3-2000。在千兆速率下,向PHY提供GTXCLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供 TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个地址16位。其中前16个已经在IEEE 802.3,2000-22.2.4 Management Functions中规定了用途,其余的则由各器件自己指定。
发送接口

  • GTXCLK吉比特TX…信号的时钟信号(125MHz)
  • TXCLK 10/100M信号时钟
  • TXD[7:0]被发送数据
  • TXEN发送器使能信号
  • TXER发送器错误(用于破坏一个数据包)

接收接口

  • RXCLK接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)
  • RXD[7:0]接收数据
  • RXDV接收数据有效指示
  • RXER接收数据出错指示
  • COL冲突检测(仅用于半双工状态)
  • CRS 载波监听

管理接口

  • MDC配置接口时钟
  • MDIO配置接口I/O

SGMII和Serdes的区别

SGMII和1000BASE-X的区别在于自协商的包不一样,
SGMII和1000Base-X的电平标准一致,数据封装形式一致(SGMII引用的1000Base-X),数据里,链路状态的信息不一样,SGMII非对称,主要是PHY向MAC反馈PHY的链路状态(电口PHY),类似于RGMII的In Band Link Status,1000Base-X对称。二者不一致,1000Base-X的模块插SGMII上一般不能直接用。交换机上的解决方案是对联端口都配成强制速率,全双工,强制忽略状态信息,可用。SFP的SGMII-光口模块存在,但很少,要找,多数是到RJ45的电口模块。

TBI

TBI即Ten Bit Interface的意思,接口数据位宽由GMII接口的8位增加到10位,在将数据发给PHY芯片之前进行了8B/10B变换(8B/10B变换本是在PHY芯片中完成的)

1000BASE-X

短波长光传输1000Base-SX、长波长光传输1000Base-LX,多模光纤有可以分为长波激光(称为1000BaseLX)、的短波激光(称为1000BaseSX)
1000Base-LX,是定义在 IEEE 802.3z 中的针对光纤布线吉比特以太网的一个物理层规范。LX 代表长波长,与 1000Base-SX 相反,1000Base-LX 使用长波长激光(1310nm)越过多模式和单模式光纤,1000Base-SX 使用短波长激光越过多模式光纤。多模式光纤的最大距离是 850m。
1000BASE-SX也对应于802.3z标准,只能使用多模光纤。1000BASE-SX所使用的光纤有:62.5μm多模光纤、50μm多模光纤。其中使用62.5μm多模光纤的最大传输距离为275m,使用50μm多模光纤的最大传输距离为550米。1000BASE-SX采用8B/10B编码方式。

MDIO

MDIO的操作有22号条款和45号条款两种方式,
244
为了兼容,定义了新的ST代码(00),用于标识第45号条款的数据帧。运算码扩展地址帧,读和读后增量地址帧。由于寄存器地址不再需要,这个字段被指定目标设备类型的内容代替。而且45号条款中,读写寄存器需要两个步骤,第一个地址帧发送到指定的MMD和寄存器,然后发送第二帧来执行读或写。
8

<think>嗯,用户问的是如何在Linux中配置桥接模式MacVLAN接口。首先,我得回忆一下MacVLAN的基本概念。根据之前的引用内容,MacVLAN允许在物理接口上创建多个虚拟子接口,每个都有自己的MAC和IP地址。桥接模式的话,可能是指让这些虚拟接口像桥接设备一样工作,或者连接到桥接网络? 用户提到的桥接模式可能指的是MacVLAN的桥接模式(bridge mode),这是MacVLAN的一种模式,其他模式还有private、vepa等。桥接模式允许同一父接口下的MacVLAN接口之间直接通信,而无需经过外部交换机。不过根据引用3,MacVLAN接口不能直接接口通信,可能需要外部设备。这会不会有冲突?需要确认不同模式的区别。 接下来,配置步骤应该包括加载内核模块、创建MacVLAN接口、分配IP、启用接口、测试连接等。可能还需要设置网络命名空间来测试通信。比如,创建两个MacVLAN接口,分别放在不同的命名空间里,然后测试它们之间能否通信,以及能否访问外部网络。 另外,用户可能是在Docker环境中使用,因为引用2提到Docker的macvlan网络使用Linux的驱动。不过问题本身是关于Linux配置,所以需要保持一般性,但可以提到Docker的相关应用作为参考。 需要注意的是,桥接模式的具体命令是否正确。比如,创建MacVLAN接口时,使用`ip link add link eth0 name macvlan0 type macvlan mode bridge`,这里的模式是否正确。要确认MacVLAN的模式参数是否是bridge,或者是否应该用其他关键字。 还有,父接口是否需要处于混杂模式?可能需要启用混杂模式来允许接收不同MAC地址的数据包。可以通过`ip link set eth0 promisc on`来设置。 测试部分,可能需要创建网络命名空间,将MacVLAN接口移入,然后通过ping测试连通性。比如,在两个命名空间中分别配置IP,然后互相ping,以及ping外部地址,检查是否正常工作。 注意事项部分,引用3提到MacVLAN接口不能接口直接通信,所以用户需要注意如果配置了桥接模式,是否会影响这一点。或者桥接模式是否允许同一父接口下的MacVLAN接口互相通信,而父接口本身还是不能直接和它们通信。 最后,确保步骤清晰,命令准确,并且注意事项都涵盖进去,比如网络环境支持多MAC,交换机配置等。</think>### Linux中配置桥接模式MacVLAN接口的步骤 #### 1. **确认内核支持** 确保系统内核支持MacVLAN驱动,现代Linux内核(≥3.9)默认已包含该模块: ```bash lsmod | grep macvlan ``` 若无输出,需加载模块: ```bash modprobe macvlan ``` #### 2. **创建桥接模式MacVLAN接口** 假设父接口为`eth0`,创建名为`macvlan0`的MacVLAN接口并指定模式为`bridge`: ```bash ip link add link eth0 name macvlan0 type macvlan mode bridge ``` #### 3. **分配IP地址并启用接口** ```bash ip addr add 192.168.1.100/24 dev macvlan0 ip link set macvlan0 up ``` #### 4. **验证接口状态** ```bash ip addr show macvlan0 # 应显示分配的IP及"UP"状态 ``` #### 5. **测试网络连通性** ```bash ping -I macvlan0 192.168.1.1 # 测试网关通信 ``` #### 6. **跨命名空间通信测试(可选)** 创建两个MacVLAN接口并置于独立命名空间,验证桥接模式下的直接通信: ```bash # 创建命名空间 ip netns add ns1 ip netns add ns2 # 创建接口并分配命名空间 ip link add link eth0 macvlan1 type macvlan mode bridge ip link set macvlan1 netns ns1 ip netns exec ns1 ip addr add 192.168.1.101/24 dev macvlan1 ip netns exec ns1 ip link set macvlan1 up ip link add link eth0 macvlan2 type macvlan mode bridge ip link set macvlan2 netns ns2 ip netns exec ns2 ip addr add 192.168.1.102/24 dev macvlan2 ip netns exec ns2 ip link set macvlan2 up # 测试跨命名空间通信 ip netns exec ns1 ping 192.168.1.102 ``` #### 7. **持久化配置(以Ubuntu为例)** 在`/etc/network/interfaces.d/macvlan0`添加: ```bash auto macvlan0 iface macvlan0 inet static address 192.168.1.100/24 pre-up ip link add link eth0 name macvlan0 type macvlan mode bridge post-down ip link del macvlan0 ``` ### 关键注意事项 1. **父接口混杂模式** 需启用父接口混杂模式以接收多MAC流量: ```bash ip link set eth0 promisc on ``` 2. **通信限制** - MacVLAN接口间可直接通信(桥接模式下)[^3] - **无法直接接口通信**,需通过外部网络设备[^1] 3. **网络环境兼容性** 确保交换机允许同一端口多个MAC地址(需关闭端口安全功能) 4. **Docker集成** 创建MacVLAN网络供容器使用: ```bash docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macvlan_net ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值