意义
路由器的公网IP一旦变动,自动更新cloudflare ddns,同时微信推送一条消息,效果图如下。
大规模测试,测试设备支持的每个ONT,当然测试用例以及拓扑不需要我设计,我也没那个水平,只负责Automation。。
测试仪 -> Switch -> EUT -> Spliters -> ONTS -> Switch -> 测试仪
虽然使用->单箭头,但实际上全部是双向流量
分别自动化验证GPON接口连接的若干Half bridge/Full bridge/RG ONTs的IGMP/PPPOE/DHCP/VOIP/RealVideo流量能否正常通过。
验证NGPON连接的若干Half bridge ONTs的IGMP/PPPOE/DHCP/VOIP/RealVideo流量能否正常通过。
1 | typedef struct dataStruct |
堆栈我在早年学习微机原理的时候就已接触过。在对寄存器操作的时候,为了避免某些指令对寄存器中原先的值产生影响,在执行指令前,要进行入栈push操作,会将某些寄存器的值push到内存中,执行指令之后,执行出栈pop操作,主要作用就是现场保护与现场恢复。
1 | typedef struct dataStruct |
线性表分为顺序表和链表,链表分为单链表、双链表、循环链表(单循环链表和双循环链表)。
1 | typedef struct |
顺序表的存储单元是连续的,也就是在内存中,表的元素顺序摆放。过于简单了,随便康康定义就行了。
在存储单元之中不连续,通过指针连接起来,像链条一样故称之为链表
OpenWRT是一个高度模块化、自动化的嵌入式Linux系统,拥有强大的网络组建和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中,其中在智能路由器上有广泛使用。同时它还提供了100多个已编译好的软件,而且数量还在不断增加。
OpenWRT支持各种处理器架构,无论是ARM、X86、PowerPC或者MIPS都有很好的支持。其多达3000多种软件包,囊括从工具链(toolchain),到内核(Linux Kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,是的开发者只需要简单的一个make命令就可以方便快速的定制一个具有特定功能的嵌入式系统。
对于想学习嵌入式Linux开发的工程师来说,OpenWRT是非常适合的(引用)
。
我第一次接触Openwrt是在2013年,那是正是高二,家里有一个TP-Link的wr740路由器,mips架构,4M的Flash,16M的内存,当时刷过dd-wrt和openwrt。
第二次是在大二了,当时为了用路由器上校园网,撸了几台k2,研究了如何在openwrt等第三方路由器固件下实现锐捷和安腾的认证。
今天我要给k2编译一下Openwrt最新的Snapshot固件,顺便解决一下不识别16M闪存的问题。