RK356X网口限速
1. 参考资料
Linux 上的虚拟网络接口,主要要了解一下 IFB,对输入的流量进行整形
IFBwiki介绍《Linux 高级路由与流量控制手册》关于各种队列
Queue和排队规则Queueing Disciplines的介绍Linux 流量控制
Traffic Control关于
Ingress和Egress的介绍关于
HTB - Hierarchical Token Bucket队列的介绍https://arthurchiao.art/blog/lartc-qdisc-zh/#55-htbhierarchical-token-bucket层级令牌桶
HTB 官方介绍
2. 内核配置
开启
IFB - Intermediate Functional Block support, 这个会影响下行限速功能,如果只需要限制上行即出站的流量,也可不启用此模块

将
Networking support > Networking options > QoS and/or fair queueing这一页的内容全部选中,可以选择编译进内核或作为外部模块,开机时加载;- 其中
TBF - Token Bucket Filter,这个会影响上行限速功能

- 其中
3. tc工具移植
RK3566 SDK 中
busybox集成的 tc 工具过于简陋,不支持流量整形,需要重新移植 tc 工具tc工具是
iproute2中的一个组件,获取iproute2源码,我选择使用 5.18.0版本https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.18.0.tar.gz
编译环境:
Ubuntu20.04进入源码目录,执行
configureiproute2-5.2.0$ ./configure
修改
config.mk中的ARCC,指定交叉编译工具链修改
config.mk, 取消HAVE_SELINUXHAVE_ELFHAVE_MNLHAVE_CAP这几个宏定义

编译
iproute2-5.2.0$ make clean && make
查看编译得到的 tc工具是不是目标平台格式的文件

使用这个 tc工具替换 RK3566 中的
/sbin/tc
3. 限速测试
上行限速,限个
500kbps试试tc qdisc add dev eth0 root tbf rate 500Kbit latency 50ms burst 15kb
使用
iperf3上行测速,限速成功

下行限速,需要借助一个虚拟网口
ifb0来实现# 创建一个虚拟网口ifb0,用于流量重定向和整形
ip link add ifb0 type ifb
ip link set dev ifb0 up # 将网口eth0入站流量重定向到ifb0
# 在eth0上添加一个入站队列qdisc
tc qdisc add dev eth0 handle ffff: ingress
# 在eth0上添加一个过滤器,将所有IP包都重定向到网口ifb0上
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 # 在网口ifb0上添加一个HTB队列
tc qdisc add dev ifb0 root handle 1: htb default 10
# 创建一个类class,匹配这个类的流量将被限制为500kbps
tc class add dev ifb0 parent 1: classid 1:1 htb rate 500Kbit
# 创建一个过滤器,将ifb0上的所有流量都匹配到上一步创建的类上
tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1
使用
iperf3下行测速,限速成功

RK356X网口限速的更多相关文章
- tc令牌桶限速心得
一.实验拓扑与实验现象 实验拓扑如图所示,在①号机上发送数据,③号机上接受数据,同时在④号机的eth1与eth2网口限制速率为115200kbps,命令如下 tc qdisc add dev eth1 ...
- C#限速下载网络文件
代码: using System; using System.Collections.Concurrent; using System.Collections.Generic; using Syste ...
- PHP 文件限速下载代码
php 文件限速下载代码 <?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QU ...
- Nginx 限速模块一览
为了保护服务器不被刷流量,或者业务方面的一些限制,需要做一些限速措施. 一.http 请求并发连接数模块:ngx_http_limit_conn_module 这个模块可以设置每个定义的变量(比如客户 ...
- PHP文件可限速下载代码
<?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QUERY_STRING&qu ...
- dm9000网口收发控制以及mac地址过滤设置
目的 :完成网口收发调试 过程 : 1.网口初始化,根据芯片数据手册配置 2.网口发数,先向DM9000中的TX FIFO存入数据,然后出发发送寄存器完成发送: 3.网口接收 . ...
- Nginx限速遇到的问题
公司使用的是Nginx做文件服务器,最近服务器流量增大,老板提出要给每个客户端进行限速. 在Nginx中进行限速配置: http { limit_zone one $binary_remote_add ...
- nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
geo指令使用ngx_http_geo_module模块提供的.默认情况下,nginx有加载这个模块,除非人为的 --without-http_geo_module.ngx_http_geo_modu ...
- 百度云管家 5.3.6 VIP破解不限速版下载分享|百度云管家破解提速
百度云管家PC客户端v5.3.6绿色版本,属于VIP破解不限速版.百度网盘为您提供文件的网络备份.同步和分享服务.空间大.速度快.安全稳固,支持教育网加速,支持手机端.它支持便捷地查看.上传.下载云端 ...
- SCP 和 rsync限速以及用法
rsync限速以及用法 -- :: 标签:限速 rsync 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xficc.blog. ...
随机推荐
- Matplotlab显示OpenCV读取到的图像
Matplotlab显示OpenCV读取到的图像 一. 确认图像的数组类型 在使用 OpenCV 的 cv2.imread() 函数读取图像时,第二个参数(标志)决定了图像的读取方式.具体来说,0.1 ...
- 初识VPC网络的能力
本文分享自天翼云开发者社区<初识VPC网络的能力>,作者:布小匠 VPC网络的来源 在云计算早期是没有VPC的概念的,有的是虚拟网络和虚拟路由器的功能.虚拟网络的作用是为用户提供一个虚拟的 ...
- 服务器主机:复杂理论的视角与SEO策略
本文分享自天翼云开发者社区<服务器主机:复杂理论的视角与SEO策略>,作者:不知不觉 在数字世界的演变中,服务器主机在信息存储和数据处理方面发挥着核心作用.本文将带你重新认识服务器主机的价 ...
- 一款基于 WPF 开源、功能全面的串口调试工具
前言 今天大姚给大家分享一款基于 WPF 开源(MIT License).免费.功能全面的串口调试工具:BYSerial. 项目介绍 BYSerial是一款基于 WPF 开源(MIT License) ...
- Clickhouse常见异常
一.异常 1)DB::Exception: Nested type Array(String) cannot be inside Nullable type (version 20.4.6.53 (o ...
- manim边学边做--通用变换
在 Manim 动画制作中,Transform.TransformFromCopy.ReplacementTransform和Restore是四个通用的对象变换动画类. 这几个类能够实现从一个对象到另 ...
- keycloak~认证与校验使用说明
主要内容 密码认证 授权码认证 哪个client申请的code,使用哪个client获取token 客户端认证 在kc开通了服务端帐号之后,可通过client_id和client_secret来获取t ...
- 运用myabits
要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可. 如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中: ...
- 【H2O系列】包括人形机器人WBC相关论文小结
1. 前言 这篇博客主要用于记录包括人形机器人WBC或locomotion相关论文小结. 一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流. 如有不对之处,欢迎评论区指出错误,你我共同进步 ...
- [NOI2014] 购票 题解
首先发现 \(p_x\times dis(x,y)+q_x\) 异常像是能斜率优化的样子,那先把求 \(f_x\) 的式子写出来(下设 \(d_x\) 表示 \(x\) 到根的距离): \[f_x=\ ...