基于LS1028 TSN 交换机软件系统设计与实现(三)

news2025/1/12 10:37:36
NXP 推出 OpenIL 作为用于工业领域的 Linux 发行版, OpenIL 新增的部分中
含有:支持实时的操作系统的扩展和支持工业厂房中自动化 OEM Time-Sensitive
网络。 OpenIL 作为开放型的工业 Linux 系统最大的优势便是将实时计算在网络中
的障碍清除了, OEM 厂商借标准的、社区的发行版 OpenIL 将逐步跨入工业 4.0
时代。
4.1 TSN 交换机软件的基本设计思想
在本文中支持 TSN 系统的交换机软件选用的是开放式工业 Linux 系统
(OpenIL) ,因为 TSN 的特性就是实时性强,而 OpenIL 是针对用于工业领域的开发
的专业 Linux 版本,扩展了实时的操作系统并且支持工业厂房中自动化 OEM
Time-Sensitive 网络(包括流过滤监管、分时拥塞感知整形和 802.1AS 时间同步等)。
软件系统的总体框图如图 4-1 所示。

OpenIL 不仅拥有网络协议栈、用于配置管理的 Web 服务、脚本工具等一些 IT
的基础架构软件,还有一般来说可作为 Linux 发行版中一部分的实用的系统程序,
除此之外还包含如下工业领域的软件特性:
1 )对 Unix Xenomai 实时扩展,简化实时操作系统 (RTOS) 移植 ( 如 VxWorks
pSOS)
(2)可扩展标记语言 (XML) 和基于 NETCONF TSN 网络配置实用程序。
(3)支持通用精确时间协议 (gPTP) linuxptp 守护程序。
(4)支持边缘计算服务。
(5)安全性的 SeLinux
采用 OpenIL 不仅可以实现交换机的 TSN 特性,在未来工业互联网大平台
中还可以将该交换机作为 TSN END POINT 使用,连接 TSN 整网 [26] OpenIL
统的目录结构如图 4-2 ,第二层和第三层是为编译产生的。
OpenIL 在通用 Linux 的基础上提供 OT 所需的可确定性、可管理性、工业网
络和安全性。 Xenomai cobalt 是一种实时框架,将传统 RTOS 应用程序移植到
OpenIL 上,扩展单 linux 内核成双内核(实时 kernel 和原生态 linux kernel [27] )。
这样只需要部署一种 IEEE 标准以太网网络,就既能传输 OT 系统中对实时性要求
较高的控制流量,又能传输 IT 系统中尽力而为的普通以太网流量。在本次研究中,
主要工作集中在 Xenomai colbat 双内核在 OpenIL 中的实现。
4-3 OpenIL 系统中双内核的架构, TSN API 是给有实时要求的应用所调
用,通过实时 Xenomai cobalt 核对 TSN switch 进行配置,
kernel 中同时支持 gPTP
议(precious time protocol)来同步时间。用户态空间支持通用的 ethernet App ,同
时也支持 TSN 相关的 App ,这样只需要一个系统就同时满足 IT OT 的需求,简
化网络的部署和管理。

 

 

4.3 TSN 交换机软件的功能模块
4.4 TSN 交换机软件功能
TSN 的软件功能由三大块共同实现。分别为用户态的 tsn api 接口,嵌入在
kernel 中的 tsn 配置接口,以及 switchdev 驱动。图 4-8 为软件层面的调用关系。

 

 

用户态的 TSN API 以共享库的形式(
libtsn.so )分布,对开发者提供统一的接
口。 Api 接口均是以 tsn_xx_set, tsn_xx_get 的形式,其中 xx 代表功能缩写。比
qbv 功能设置接口: tsn_qbv_set, tsn_qbv_get
实现原理是通过 Netlink 套接字与内核的 TSN api 模块进行通信。这是 Linux
通用的一种用户进程与内核进程通信的方式,所以不再赘述。我们同时提供 tsntool
可执行文件进行交互的配置方式, tsntool 就是使用 libtsn.so 实现的。
内核态的 TSN API 作为 kernel Buildin 编译到内核中,在 menuconfig 中配
置是否编译此 TSN 功能接口。这个模块主要提供 tsn_port_register(port, optfunc,
enable) 接口供 switchdev 驱动调用。接口的配置函数最终由回调函数 optfunc 实现。
另一方面,内核态 TSN API 接收 netlink socket 消息(来自用户态 TSN ),解
析后通过 optfunc 函数进行配置,并返回结果给用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/436194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb——UDP的报文结构和注意事项

目录 一、UDP特点 1、无连接 2、不可靠 3、面向数据报 4、全双工通信 二、UDP报文结构 1、报头 2、载荷 三、端口 四、报文长度 五、校验和 1、定义 六、注意事项 1、UDP只有接收缓冲区、没有发送缓冲区 2、UDP大小受限 3、基于UDP的应用层协议 4、MTU对UDP协议…

《Java8实战》第11章 用 Optional 取代 null

11.1 如何为缺失的值建模 public String getCarInsuranceName(Person person) { return person.getCar().getInsurance().getName(); } 上面的这种代码就很容易出现NullPointerException的异常。 11.1.1 采用防御式检查减少 NullPointerException 为了避免NullPointerExce…

【Linux】基础IO——文件操作|文件描述符|重定向|缓冲区

文章目录 一、文件操作1. 文件预备知识2. 回顾C文件操作3. 文件操作的系统调用标志位的传递openwriteread 二、文件描述符1. 文件描述符的理解2. 文件描述符的分配规则 三、重定向1. 重定向的本质2. dup2系统调用 四、缓冲区1. 缓冲区的刷新策略2. 缓冲区的位置3. 简单模拟实现…

当程序员的好处和坏处,我用七年经历来和大家聊一聊

我想和大家分享一下我做程序员这七年来的一些感受和经验,同时也想和大家聊一聊做程序员的好处和坏处,让大家真正深入了解程序员的工作,是不是和大家想象中的一样。 首先,我毕业于四川某不知名的二本院校,于2016年进入…

【软考备战·希赛网每日一练】2023年4月19日

文章目录 一、今日成绩二、错题总结第一题第二题第三题 三、知识查缺 题目及解析来源:2023年04月19日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 第二题 解析: server-side n.服务器端 enterprise n.企业 client n.客户 d…

matplotlib的配色(随机颜色函数,各种渐变色,彩虹色)

也是画图的时候经常会遇到的问题,什么颜色好看? 先直接上一个配色表: plt官网:List of named colors — Matplotlib 3.8.0.dev898g4f5b5741ce documentation 需要什么颜色传入就行了。 例如我下面画一个柱状图,自己选…

ctfhub技能树 web sql注入

1.整型注入 页面正常时 判断注入字段数 ?id1 order by 2判断注入回显位 ?id-1 union select 1,2查数据库 ?id-1 union select 1,database()库名:sqli 查数据表 ?id-1 union select 1,group_concat(table_name) from information_schema.tables where tabl…

kotlin协程、线程切换,函数方法委托

kotlin协程、线程切换,函数方法委托 一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可…

Springcloud核心组件

在这里总结一下所有组件: springcloud是分布式微服务的一站式解决方案,可以说微服务是一个概念,而springcloud就是这个的实现 springcloud有五大核心组件: 注册中心 引言 由于微服务处于不同的进程,也就是说&…

【软考备战·希赛网每日一练】2023年4月13日

文章目录 一、今日成绩二、错题总结第一题第二题第三题第四题第五题 三、知识查缺 题目及解析来源:2023年04月13日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 本题有争议,了解即可。 第二题 解析: 上图UML图为…

[计算机图形学]几何:网格处理(前瞻预习/复习回顾)

一、前言 网格的三种处理:网格细分,网格简化,网格正则化,细分会产生更多的三角面片来让模型更加光滑,简化则相反会减少网格的三角面片数量,正则化则会让三角形面更加规则。如上图中最右边两幅图&#xff0…

SpringBoot监听器源码解析

1.1 创建SpringApplication对象 public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) {return new SpringApplication(primarySources).run(args); }SpringApplication(。。){//获取到所有配置的ApplicationListener类型的监…

Android中的多线程编程与异步处理

Android中的多线程编程与异步处理 引言 在移动应用开发中&#xff0c;用户体验是至关重要的。一个流畅、高效的应用能够吸引用户并提升用户满意度。然而&#xff0c;移动应用面临着处理复杂业务逻辑、响应用户输入、处理网络请求等多个任务的挑战。为了确保应用的性能和用户体验…

《springboot实战》第六章 实现自定义全局异常处理

前言 springboot实现自定义全局异常处理&#xff0c;以及统一返回数据。 1、分析 首先&#xff0c;实现全局异常的流程 从图中可以看到&#xff0c;实现全局异常会需要这样几个类&#xff1a; 自定义异常接口类自定义异常枚举类自定义异常类自定义异常处理类自定义全局响应…

藏在GPT背后的治理分歧:那些赞同和反对的人们|AI百态(下篇)

AGI的火种正在燎原。 一面是无可否认的AI生产力&#xff0c;正在赋能千行百业&#xff1b;而另一面&#xff0c;这团火似乎烧向了我们不可控的隐秘角落。 在《AI百态&#xff08;上篇&#xff09;——ChatGPT的“N宗罪”》中&#xff0c;我们提到监管重锤在落下&#xff0c;意大…

安装 Docker和基本操作实验文档

一、安装 Docker 目前 Docker 只能支持 64 位系统。 systemctl stop firewalld.service setenforce 0 #安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-utils&#xff1a;提供了 yum-config-manager 工具。device mapper&#xff1a; 是Li…

分布式系统概念和设计-操作系统中的支持和设计

分布式系统概念和设计 操作系统支持 中间件和底层操作系统的关系&#xff0c;操作系统如何满足中间件需求。 中间件需求:访问物理资源的效率和健壮性&#xff0c;多种资源管理策略的灵活性。 任何一个操作系统的目标都是提供一个在物理层&#xff08;处理器&#xff0c;内存&a…

【网络安全】Xss漏洞

xss漏洞 xss漏洞介绍危害防御方法xss测试语句xss攻击语句1. 反射性xss2.存储型xss3.DOM型xssdvwa靶场各等级渗透方法xss反射型&#xff08;存储型方法一致&#xff09;LowMediumHightimpossible Dom型LowMediumHight xss漏洞介绍 定义&#xff1a;XSS 攻击全称跨站脚本攻击&am…

Twitter|GraphJet:推特的实时内容推荐(论文+源码解读)

以下内容具有主观性&#xff0c;有些问题的理解和回答不一定准确&#xff0c;仅供参考。翻译不确定的后面都有原文。 1.论文 1.1论文的动机是什么&#xff1f; 作者在追溯基于图推荐的系统的进化过程&#xff0c;发现了两大趋势&#xff08;更快更广&#xff09;。 趋势一是…

MySQL ,MyBatis 1.参数占位符 2. ParameterType 3. SQL 语句中特殊字符处理

1.参数占位符&#xff1a; 1&#xff09;#{}&#xff1a;执行sql时&#xff0c;会将#仔占位符替换为&#xff1f;&#xff0c;将来自动设置参数值 2&#xff09;${}&#xff1a;拼SQL。会存在SQL注入问题 3.使用时机&#xff1a; * 参数传递&#xff0c;都使用#{} *如果要对表名…