博通Broadcom SDK源码学习与探究
文章平均质量分 96
kcyuan
科创园地,分享技术知识,为科技助力发展,贡献一己之力。
展开
-
博通Broadcom SDK源码学习与开发12终结篇——TR069网管协议
1. set parameter时的数据有效性检测目前的实现中,tr69c/SOAPParser/RPCState.c char *doSetParameterValues(RPCAction *a)有支持对参数名称/参数是否可写做检查,但对设置值的有效性检查只有简单的“对非字符型参数不可设置为空”做了检查,而未对数据范围等做检查。 改进的方法可扩展参数设置SetFunc()的返回类型,在SetFunc中检查数据有效性,如数据无效,返回9007.2. 增加/删除节点与SNMP同步原创 2022-02-03 00:10:44 · 1723 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发11——Cable Modem DHCP管理
DHCP Server概览(1) DhcpServerSnoop接收DHCP和ARP包,并向DhcpServerThread发送消息:AnnounceDhcpPacket,AnnounceArpPacket;(2) DhcpServerThread接收到消息,调用DhcpServerIf类解析数据包,管理Timer定时事件;(3) DhcpServerIf管理DHCP Lease的状态:New, Bound, Zombie,并向BcmCableHomeDhcpServerIpServiceAppIf发原创 2022-02-02 22:51:29 · 1254 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发10——Cable Modem IPv6地址
(1) BcmNeighborCacheEntry:CacheEntry存储邻节点的相关信息:neighbor's on-link IP address, IsRouter/IsHost, ReachabilityState, related Timers.发送邻节点请求,处理邻节点公告相关的逻辑;(2) BcmNeighborCache: Cache 是由CacheEntry组成的集合,使用neighbor's on-link unicast IP address作为索引;原创 2022-02-02 21:33:55 · 1348 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发9——Interface接口管理
WAN由CableModem Interface,DOCSIS WAN/LAN IpStack,充当“LAN Port”的Briding接口等组成;LAN由Ethernet Interfaces, Private IpStacks, WIFI MBSS/WDS接口,充当“WAN Port”的Briding接口等组成;单独的WLAN不存在;所有的LAN口及WIFI MBSS/WDS接口都被加入BcmManageSwitchSnoop对象中,该Snoop负责在各接口之间转发包;BcmLocalNetwo原创 2022-02-01 20:30:48 · 1288 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发8——内存与参数管理
内存分配基本方法:动态不定长内存分配使用双向链表管理内存节点.一个为空闲内存链表,一个为已分配内存链表。主要数据结构和变量在flash上有“permanent"和"dynamic"2块用于存储参数的区块。2块区域有相同的参数格式,但顾名思义,dynamic区块用于存储系统运行过程中的参数, 而permanent区块即起到NVRAM的作用,同于保存出厂配置参数,Vendor/MAC/WiFi参数等原创 2022-01-26 10:17:07 · 253 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发7——HAL硬件抽象层分析
驱动和HAL代码主要存在于:xchg_drivers, CableModemBsp两个目录下;xchg_drivers下的驱动在voice_res_gw下使用;网络接口相关的驱动在rbb_cm_src/CableModemBsp,供BFC使用; 该部分直接操作相关硬件,不是严格意义上的HAL,而起着驱动的功能。系统中网络接口的类型有:Cm, Wifi, USB, PCI, Moca等;EnetIf代表以太网接口,现在主要用于LAN;WAN口自己收发包,封装、解封装Ethernet帧;原创 2022-01-26 10:16:26 · 430 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发6——支持Linux系统
共享内存:利: 机制实现简单,系统刚启动时候也可以使用弊: 扩展空间有限,响应不及时中断机制:利: 相应迅速,扩展相对容易弊: ISR处理需要关闭中断,对ISR处理程序的实时性要求高socket通信:利: 扩展,实现方便,相应速度相对比较快捷弊: -综合而言:系统初始化时候,简单的通信方式可以使用共享内存实时性要求高的通信方式应该使用中断其他考虑使用socket通信。原创 2022-01-25 23:08:14 · 842 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发5——ECOS系统层剖析
系统中存在 BcmOperatingSystemFactory 类,thread可以使用该类创建各种不同系统的BcmOperatingSystem, BcmMutexSemaphore and BcmCountingSemaphore子类,BcmOperatingSystemFactory类不存在实体,使用"!BcmOperatingSystemFactory::"的方式直接调用它的方法,例: BcmThread的构造函数中使用BcmOperatingSystemFactory::NewOperatingS原创 2022-01-25 22:02:54 · 799 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发4——ECOS系统数据流
PacketFlow的分析,系统所有的数据包都会通过 Forwarder进行转发但是对于tcp的数据,在通过三次握手建立好连接后,后续的数据包就直接通过硬件加速途径进行转发,而不是上层的 Snoop-Forwarder-Snoop的机制如果需要让后续的tcp数据包通过 Forwarder,需要开启 FapBypass原创 2022-01-25 21:39:52 · 742 阅读 · 0 评论 -
博通Broadcom SDK源码学习与开发3——Cable Modem Docsis3.0
博通的Cable Modem Docsis3.0提出了一个Channel Bounding的概念,将几个channel绑定在一起作为一个传输通道来使用,用以获取更高的上下行速率。目前支持最多的bounding是将四个channel绑定一起,最高实现上行120Mbits/s,下行160Mbits/s的速率.Forwarder 来负责在RF端口和 NSI 口之间复制转发数据对于上行数据,Mac Domain中 的收到后转送给上层的 Fowarder原创 2022-01-23 14:51:50 · 649 阅读 · 1 评论 -
博通Broadcom SDK源码学习与开发2——Bootloader功能和编译过程
源码:博通SDK,芯片3384xx文章目录1. 编译2. 功能3. 启动流程分析4. 移植分析1. 编译(1)相关文件目录如下:bootloader linux zOEMtools_eCos build.sh REV(2)编译步骤和结果#prepare build env升级客户定制化firmware,这个需求的提出基于以下情况:Firmware由客户提供,且可能不是基于Broadcom SDK(不同的flash partition或image header);原创 2022-01-23 14:02:13 · 1184 阅读 · 2 评论 -
博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
对于cable modem的代码,从编译的脚本:build_procedure.sh可看出,主要分为两块,一部分是source code,一部分是tool chains 解压后分别存在于文件夹:REV和zOEMtools_eCos中 编译从REV目录开始:1. 首先在make后一路读取makefile,确定一个默认的目标2. 然后根据依赖条件会编译几个.a库,mta.a, common.a等3. 根据设置选择编译相应的功能模块(目标文件会集中放置在某文件夹下)4. 最后生成img文件原创 2022-01-19 22:53:39 · 4304 阅读 · 2 评论