1个GAMC转3路网卡的关键在于:

发送时,对于GMAC发出的包,FPGA应该转到那个PHY口

接收时,从PHY口接收到的包应该给到那个netdev处理

A方案

在FPGA中保存三个netdev的mac,

发送时根据源mac决定要发给那个phy

接收时,根据目标mac决定input给那个netdev。

注意:三个netdev共用一份gmac驱动程序,每次初始化Init都调用一次pnetdev,

实际发生中断无论是TX还是RX,最终中断处理函数的入参pNetDev永远指向最后一个创建的netdev。

方案实现注意点:

1、每次上电时需要通知FPGA三个网卡的mac地址,实时改mac之后还要通知一次。

2、每个netdevx相对独立,当1个netdev执行到gmac的TX、RX处理时,不允许别的netdev同时使用gmac的TX、RX处理。

3、gmac的发送接收流程不允许被打断,所以gmac本身要加自旋锁。

4、gmac以千兆速率发包数量过多时,FPGA可能会存在来不及转发的现象,每发一帧数据要自旋170us。(不睡眠是因为不值得,任务调度切换在ms级别,170us自旋即可,170us是发1500B的帧数据所需时间,也可以根据每次发送帧数据的大小调整时间)

B方案

发送时:

根据源mac,为数据帧加头.(让FPGA知道应该向那个phy口转发)

接收时:

FPGA根据接收到的数据帧来自那个phy口加头,发给gmac控制器。Gmac收到后根据头部信息决定使用input提交给那个netdev处理。

对比

在收到广播时,目的mac为0xFFFF FFFF FF。

A方案会转发给3个netdev。

B方案在FPGA中会根据源phy,加头,这样就可以input到指定的netdev中。

对于广播包:正常的处理应该是发给同网段内的所有网卡设备,GMAC生成的3个netdev是在3个不同的网段。依次逻辑,明显易立的方案更合理一些。(A方案也不会发生错误,只是逻辑上不太合理,存在一定的安全风险)

gmac做3路网卡转fpga实现方案对比相关推荐

  1. Oracle11gR2集群心跳单网卡改bond实施方案

    Oracle11gR2集群心跳单网卡改bond实施方案 一.概述 为了提高心跳网络的可用性,需要将心跳网卡由单网卡模式改成bonding模式.对应转换关系如下: 项 原始状态 优化后状态 操作系统版本 ...

  2. IM推送保障及网络优化详解(二):如何做长连接加推送组合方案

    对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...

  3. 压缩 质量不变_来了!业内首个HEIF图像高质量压缩FPGA加速方案

    近日,元脑生态伙伴深维科技与浪潮联合发布业内首个基于FPGA的HEIF图像处理加速方案.相比于CPU处理,在保持图像质量不变的情况下,该方案的处理性能提升5倍以上并显著降低计算成本.HEIF是一种新型 ...

  4. 餐饮店开业活动策划如何做?引流促销营销怎么做?餐饮会员日周年庆方案

    餐饮店开业活动策划如何做?引流促销营销怎么做?餐饮会员日周年庆方案? 我来给你一套完整的[餐饮店引流+锁客+数字化运营方案]请收好. 引流: 开餐饮店一定要知道,人气非常重要,既然做活动,我们就要站在 ...

  5. 炒股做短线好还是中长线好?区别对比分析

    炒股做短线好还是中长线好?区别对比分析.短线炒股基本上只能赚点小钱,想要真正的从股市发家致富,唯有抓趋势机会,在趋势中才能赚大钱.遇到大的趋势行情,放个几十万进去.打工人所追求的什么房子.车子.这些基 ...

  6. Linux内核 mipi虚拟通道,基于NVP6324的4路模拟720P/1080P 视频输入方案

    基于NVP6324的4路模拟720P/1080P 视频输入方案 4路720P视频采集.4路AHD视频采集.4路模拟高清.Linux 4路AHD视频输入.4路模拟摄像头输入.4路1080P视频输入.i. ...

  7. FPGA异构计算架构对比分析

    FPGA异构计算架构对比分析 ▌本文来源:智能计算芯世界(已授权) AI芯片主要分为CPU .GPU.FPGA以及ASIC.其中以CPU.GPU.FPGA.ASIC的顺序,通用性逐渐减低,但运算效率逐 ...

  8. 芯片工程师成长之路_一个FPGA工程师的成长之路

    最近逻辑组任务较多,人力不足,因此招了一些新员工.最近一段时间,也面试了很多人,各个行业和公司的都有,形形色色的人面试多了,也有一些感触,另外,年近而立,也需要总结一下.在此记录下来,与君共勉. 关于 ...

  9. 用 tap/tun 做虚拟机的网卡

    本文首发于我的公众号 CloudDeveloper(ID: cloud_dev),专注于干货分享,号内有大量书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 在云计算时代 ...

最新文章

  1. 100行代码搞定实时视频人脸表情识别(附代码)
  2. 递归和迭代的区别是什么,各有什么优缺点?
  3. 安全无忧,函数计算推出访问用户VPC功能,实现自定义的多类VPC网络资源互通...
  4. Android自定义View实践 空气质量检测 pm2.5
  5. VS2017 error C3646: 未知重写说明符
  6. 计算机造句英语怎么说,计算的英文翻译是什么及如何造句
  7. linux网络编程-----几种服务器模型及io多路复用函数
  8. java连接mysql数据库连接池_java使用原生MySQL实现数据的增删改查以及数据库连接池技术...
  9. docker load tar.gz包失败解决方法
  10. matlab实现图片类型的转换
  11. 游戏策划游戏研发必读经典题文一
  12. [转载]静息态fMRI、DTI、VBM
  13. RPG游戏中造过的BUG
  14. uniapp,从文件流获取图片地址,并展示图片
  15. setTimeout运行机制
  16. 风险偏好情绪有所改善,非美低位反弹
  17. vb与c语言数组传递,VB几种函数参数传递方法,Variant,数组,Optional,ParamArray
  18. PS学习_1-软件下载与破解
  19. (Get the office2019)Download Office Tool
  20. 单独的html怎么实现微信分享,html静态页面实现微信分享思路

热门文章

  1. 3dsmax UVW展开,然后在 BodyPaint 3D 中进行绘制
  2. 【抖音小程序】抖音小程序避免onClose重复回调 解决广告重复回调
  3. 水务丨软件机器人实现自动计算,实现营业收费管理系统“智能升级”
  4. 谢菲尔德大学计算机科学学院地理位置,2020年谢菲尔德大学在哪里及校区详细地址介绍...
  5. 练习:测测你优势教养的程度
  6. 黑马程序员——集合框架
  7. Java-枚举类enum及常用方法
  8. 网络原理考点之internet路由选择协议
  9. ESP32_esp-adf环境搭建
  10. UVa Problem 10001 Garden of Eden (伊甸园)