- 博客(171)
- 资源 (54)
- 收藏
- 关注

原创 TR069协议与商业应用7——Stun协议实现技术(提供源码解决方案)
声明:原创作品,严禁用于商业目的。 如有任何问题,欢迎和我交流:408797506@qq.com(微信:408797506)文章目录1. 协议规范2. 技术实现3. 对接公网ACS测试1. 协议规范STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一 个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于N
2022-03-06 22:13:19
4804
5
原创 云计算学习8——OpenStack高级运维企业实战竞赛题目
OpenStack运维部分:先电云计算openstack全系列共分为三部分,分别如下:任务一: 基础运维部分 任务二: OpenStack搭建任务 任务三: OpenStack云平台运维
2022-07-27 10:24:14
1124
原创 云计算学习7——云计算OpenStack运维基础
OpenStack云平台运维介绍nova、neutron、cinder、swift、Ceilometer管理、防火墙等服务组件操作
2022-07-27 10:11:58
5265
1
原创 云计算学习6——云主机创建单独篇(非常详细图文并茂)
创建云主机的操作流程使用先电IaaS云平台创建云主机的流程如下:1. 创建外部网络2. 创建内部网络3. 创建路由4. 关联网络5. 上传 centos 7云主机镜像6. 创建安全组7. 创建云主机8. 绑定浮动IP9. 使用远程连接工具连接云主机
2022-04-22 14:41:37
4504
3
原创 云计算学习2——keystone组件运维和测试
如果把宾馆比作为Openstack,那么宾馆的中央管理系统就是Keystone,入住宾馆的人就是User 。在宾馆中拥有很多不同的房间,房间提供了不同的服务(Service)。在入住宾馆前,User需要给出身份证(Credential),中央管理系统(Keystone)在确认User的身份后(Authenticaiton),会给你一个房卡(Token)和导航地图(Endpoint)。不同VIP(Role)级别的User,拥有不同权限的房卡(Token),如果你的VIP(Role)等级高,你可以享受到豪华
2022-04-21 13:34:13
1576
原创 云计算学习1——OpenStack云计算安装部署步骤图文并茂(先电2.2)
声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:408797506(微信同号)。腾讯课堂链接B站视频链接1. 配置虚拟机2. 创建控制节点和计算节点的虚拟机创建两个虚拟机(控制结点和计算结点)2.1 创建结点虚拟机(1) 虚拟机新建系统,设置参数(2)结点系统安装完成后,使用root账号登陆系统,配置静态ip地址>ip a // 命令查看此时网卡没有ip地址,修改对应的网卡接口的ip地址> vi /etc/sysconfig/network-
2022-04-21 13:23:45
10031
1
原创 TR069协议与商业应用8——移植cwmp到ARM平台运行和测试
移植:1. 拷贝依赖库到开发板中 交叉编译里面自带libcurl和libexpat,直接拷贝so到开发板中/usr/lib。 同时创建相应的软链接。也可以用提供好的源码文件进行交叉编译2. 拷贝编译后的tr069动态库到开发板 scp device.so 192.168.0.13:/usr/lib3 拷贝编译后的cwmp执行程序到开发板 scp cwmp 192.168.0.13:/usr/bin4. 拷贝配置文件到开发板,便于测试: scp etc_config/* 192
2022-04-03 15:18:26
1657
原创 TR069协议与商业应用6——TR069动态库开发
声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:19826269205(微信同号)。文章目录1. 加载lib库2. 设备相关初始化3. 解析ACS URL4. RPC Method5.总结腾讯课堂链接B站视频链接1. 加载lib库1) 打开动态连接库前面我们定义的cwmp进程上下文结构体cwmp_context,使用dlopen以指定的模式打开动态库文件,并返回设备library的handle: //打开设备handle cwmp_ctx->hand
2022-04-01 12:41:42
1253
原创 TR069协议与商业应用5——TR069协议架构设计
程序架构设计的思想来自于easycwmp官网,看过或者用过easycwmp的工程师应该都知道,该开源代码还有商业版,而且价格不菲。easycwmp官网如是说:DataModel is developped with shell as free solution and with C as commercial solution.。开源代码用来学习还是值得的,若是用于商业产品可能就会显得"力不从心"。具体原因在前面的easycwmp商业源码和免费源码对比中可见,那么如何开发可以商业使用的TR069模块,并且实
2022-04-01 10:13:45
5090
原创 TR069协议与商业应用4——TR069服务器测试工具
声明:原创作品,严禁用于商业目的。 如有任何问题,欢迎和我交流(微信号:15240377504)。文章目录1. openACS2. VigorACS3. XACS3.1 概述3.2. 设备接入3.3 管理端登录3.4 更多功能4. 华为ITMS软件4.1 TMS1000 简介4.2 TMS1000 系统组件4.3 TMS1000 应用案例1. openACSOpenacs是一个早期用Java编写的开源的ACS服务器,该项目于2007-09-06 由Audrius Valunas发起,经过四年的开发,O
2022-03-29 17:53:29
7832
5
原创 TR069协议与商业应用1——概述(带目录索引)
1. 概述: 协议规范,acs环境,免费easycwmp开发设计思想,商业TR069开发2. TR069知识基础:协议规范、数据模型,RPC method支持, Event事件、acs反向链接,http认证(摘要,基本认证)、STUN等。常见TR069测试的软件,有openacs(鼻祖)、CDRouter、华为的itms、国外的测试工具vigoracs、还有个人组织的xacs等常见测试软件。后续会专门介绍相关测试软件的安装和测试。......
2022-03-17 15:01:52
4921
2
原创 VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
文章目录1. 配置虚拟机2. 配置Ubuntu12 系统IP环境:Ubuntu12.04VMware16.011. 配置虚拟机配置虚拟机NAT网络:192.168.200.x网络,网关为192.168.200.22. 配置Ubuntu12 系统IP启动虚拟机Ubuntu系统,打开终端,利用如下命令打开并编辑网络接口配置文件:比如我的网卡为eth2:操作步骤如下:(1)编辑文件 /etc/network/interfacessudo vim /etc/network/interfac
2022-02-12 23:06:24
1998
原创 Ubuntu系统安装Samba服务和配置匿名直接访问
文章目录1. 环境2. 安装samba服务3. 配置samba文件4. 配置win10系统5. Ubuntu系统检查samba服务是否启动1. 环境Ubuntu系统2. 安装samba服务sudo apt-get install samba出现错误: Sub-process /usr/bin/dpkg returned an error code解决办法:删除/var/lib/dpkg/info目录下的文件后,更新pkg然后install相应的samba软件sudo mv /var/lib/
2022-02-12 22:11:33
1336
原创 博通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
2015
原创 博通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
1335
原创 博通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
1448
原创 博通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
1399
原创 博通Broadcom SDK源码学习与开发8——内存与参数管理
内存分配基本方法:动态不定长内存分配使用双向链表管理内存节点.一个为空闲内存链表,一个为已分配内存链表。主要数据结构和变量在flash上有“permanent"和"dynamic"2块用于存储参数的区块。2块区域有相同的参数格式,但顾名思义,dynamic区块用于存储系统运行过程中的参数, 而permanent区块即起到NVRAM的作用,同于保存出厂配置参数,Vendor/MAC/WiFi参数等
2022-01-26 10:17:07
361
原创 博通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
538
原创 博通Broadcom SDK源码学习与开发6——支持Linux系统
共享内存:利: 机制实现简单,系统刚启动时候也可以使用弊: 扩展空间有限,响应不及时中断机制:利: 相应迅速,扩展相对容易弊: ISR处理需要关闭中断,对ISR处理程序的实时性要求高socket通信:利: 扩展,实现方便,相应速度相对比较快捷弊: -综合而言:系统初始化时候,简单的通信方式可以使用共享内存实时性要求高的通信方式应该使用中断其他考虑使用socket通信。
2022-01-25 23:08:14
985
原创 博通Broadcom SDK源码学习与开发5——ECOS系统层剖析
系统中存在 BcmOperatingSystemFactory 类,thread可以使用该类创建各种不同系统的BcmOperatingSystem, BcmMutexSemaphore and BcmCountingSemaphore子类,BcmOperatingSystemFactory类不存在实体,使用"!BcmOperatingSystemFactory::"的方式直接调用它的方法,例: BcmThread的构造函数中使用BcmOperatingSystemFactory::NewOperatingS
2022-01-25 22:02:54
944
原创 博通Broadcom SDK源码学习与开发4——ECOS系统数据流
PacketFlow的分析,系统所有的数据包都会通过 Forwarder进行转发但是对于tcp的数据,在通过三次握手建立好连接后,后续的数据包就直接通过硬件加速途径进行转发,而不是上层的 Snoop-Forwarder-Snoop的机制如果需要让后续的tcp数据包通过 Forwarder,需要开启 FapBypass
2022-01-25 21:39:52
876
原创 usb驱动开发23——大结局
从第一节我们已经知道,usb_generic_driver在自己的生命线里,以一己之力将设备的各个接口送给了linux的设备模型,让usb总线的match函数,也就是usb_device_match,在自己的那条驱动链表里为它们寻找一个合适的接口驱动程序。那么这些接口驱动都从哪里来?这就要说到每个玩儿linux的人都会知道的那几个著名的命令insmod,modprobe,rmmod。你insmod或modprobe驱动的时候,经过一个曲折的过程,会调用到你驱动里的那个xxx_init函数,进而去调用usb
2022-01-25 09:17:36
199
1
原创 usb驱动开发22——接口驱动
从第一节我们已经知道,usb_generic_driver在自己的生命线里,以一己之力将设备的各个接口送给了linux的设备模型,让usb总线的match函数,也就是usb_device_match,在自己的那条驱动链表里为它们寻找一个合适的接口驱动程序。那么这些接口驱动都从哪里来?这就要说到每个玩儿linux的人都会知道的那几个著名的命令insmod,modprobe,rmmod。你insmod或modprobe驱动的时候,经过一个曲折的过程,会调用到你驱动里的那个xxx_init函数,进而去调用usb
2022-01-25 09:17:22
457
原创 usb驱动开发21——驱动生命线
关于字符串描述符的地位仅次于设备/配置/接口/端点四大描述符,那四大设备必须得支持,而字符串描述符对设备来说则是可选的,这并不是就说字符串描述符不重要,对咱们来说,提供字符串描述符的设备要比没有提供的设备亲切的多,不会有人会专门去记前面使用lsusb列出的04b4表示的是Cypress Semiconductor Corp。一提到字符串,不可避免就得提到字符串使用的语言。Spec里就说了,字符串描述符使用的就是UNICODE编码,usb设备里的字符串可以通过它来支持多种语言,不过你需要在向设备请求字符串描
2022-01-25 09:17:10
299
原创 usb驱动开发20——驱动生命线
我们总是很喜欢高潮,不是吗?那就好好对待她哦。我们来看一下linux中的高潮部分设备是怎么从Address进入Configured的。usb_set_configuration函数的代码就不贴了,可以回顾内核去看。usb_disable_device行函数主要意味着如果设备已经在Configured状态了,就得做些清理工作。都清理些什么怎么去清理?别着急,要想学会,得仔细研究下message.c里的usb_disable_device函数。/* * usb_disable_device - Disa
2022-01-25 09:16:52
623
原创 usb驱动开发19——驱动生命线
现在开始就沿着usb_generic_driver的生命线继续往下走。设备的生命线你可以为是从你的usb设备连接到hub的某个端口时开始,而驱动的生命线就必须得回溯到usb子系统的初始化函数usb_init了:if (retval)goto hub_init_failed;retval = usb_register_device_driver(&usb_generic_driver, THIS_MODULE);if (!retval)goto out;在usb子系统初始化的时候
2022-01-25 09:16:08
594
1
原创 usb驱动开发18——设备生命线
现在已经使用GET_DESCRIPTOR请求取到了包含一个配置里所有相关描述符内容的一堆数据,这些数据是raw的,即原始的,所有数据不管是配置描述符、接口描述符还是端点描述符都挤在一起,所以得想办法将它们给分开。,于是usb_parse_configuration()就做这些事:static int usb_parse_configuration(struct device *ddev, int cfgidx, struct usb_host_config *config, unsigned ch
2022-01-24 10:03:31
448
原创 usb驱动开发17——设备生命线
拜会完了山头的几位大哥,还记得我们从哪里来要到哪里去吗?时刻不能忘记自身的使命啊。我们是从usb_submit_urb()最后的那个遗留问题usb_hcd_submit_urb()函数一路走来,现在就要去分析usb_hcd_submit_urb()里面的内容:/* may be called in any context with a valid urb->dev usecount * caller surrenders "ownership" of urb * expects usb_subm
2022-01-24 10:01:07
477
原创 usb驱动开发16——设备生命线
回到struct usb_hcd,继续努力的往下看。kref,usb主机控制器的引用计数。struct usb_hcd也有自己专用的引用计数函数,看hcd.c文件:static void hcd_release (struct kref *kref){ struct usb_hcd *hcd = container_of (kref, struct usb_hcd, kref); kfree(hcd);}struct usb_hcd *usb_get_hcd (struct usb_hcd
2022-01-24 09:59:29
1249
原创 usb驱动开发15——设备生命线
总算是进入了HCD的片儿区,既然来到一个片区,怎么都要去拜会一下山头几个大哥吧。,先回忆一些我们怎么到这里的?给你列举一个调用函数过程usb_control_msg->usb_internal_control_msg->usb_start_wait_urb->usb_submit_urb->usb_hcd_submit_urb。这个山头儿,王中之王就是drivers/usb/core/hcd.h里定义的struct usb_hcd。/*-----------------------
2022-01-24 09:57:38
262
原创 usb驱动开发14——设备生命线
直接看代码吧:/*-------------------------------------------------------------------*//** * usb_submit_urb - issue an asynchronous transfer request for an endpoint * @urb: pointer to the urb describing the request * @mem_flags: the type of memory to allocate
2022-01-24 09:55:35
387
原创 usb驱动开发13——设备生命线
上一节勉勉强强把struct urb这个中心给说完,接着看那三个基本点。第一个基本点,usb_alloc_urb函数,创建urb的专用函数,为一个urb申请内存并做初始化,在drviers/usb/core/urb.c里定义:/**usb_alloc_urb - creates a new urb for a USB driver to use@iso_packets: number of iso packets for this urb@mem_flags: the type of
2022-01-24 09:45:54
549
原创 usb驱动开发12——设备生命线
函数usb_control_msg完成一些初始化后调用了usb_internal_control_msg之后就free urb。剩下的活,全部留给usb_internal_control_msg去做了,那就去了解一下它背后的生活吧。/*-------------------------------------------------------------------*/// returns status (negative) or length (positive)static int usb_in
2022-01-24 09:39:03
679
1
原创 usb驱动开发11——设备生命线
暂时先告别媒人,我们去分析各自的生命旅程,最后还会回到usb_device_match函数。首先当你将usb设备连接在hub的某个端口上,hub检测到有设备连接了进来,它会为设备分配一个struct usb_device结构的对象并初始化,并调用设备模型提供的接口将设备添加到usb总线的设备列表里,然后usb总线会遍历驱动列表里的每个驱动,调用自己的match函数看它们和你的设备或接口是否匹配。hub检测到自己的某个端口有设备连接了进来后,它会调用core里的usb_alloc_dev函数为struct
2022-01-24 09:36:03
525
原创 usb驱动开发10——usb_device_match
在第五节我们说过会专门分析函数usb_device_match,以体现模型的重要性。同时,我们还是要守信用的。再贴一遍代码,看代码就要不厌其烦:static int usb_device_match(struct device *dev, struct device_driver *drv){ /* devices and interfaces are handled separately */ if (is_usb_device(dev)) { /* interface drivers n
2022-01-24 09:33:52
710
原创 usb驱动开发9——设备描述符
前面分析了usb的四大描述符之端点描述符,接口描述符(每一个接口对应一个功能,与之配备相应驱动),配置描述符,最后分析设备如何包括这些描述符。首先记住,在usb的世界里,设备大于配置,配置大于接口,接口包含多个设置,接口也可以理解为功能,所有端点的集合构成一个功能。废话少说,看一下usb设备结构体定义吧!struct usb_tt;/** * struct usb_device - kernel's representation of a USB device * @devnum: devic
2022-01-24 09:29:03
2379
1
2022先电最新1+X内部培训教材(云计算平台运维与开发)
2022-04-19
通过STUN连接公网ACS成功日志和包
2022-03-06
AN-V2 Software Non-Volatile Settings for DOCSIS Applications
2022-01-26
uci-0.4.0.tar.gz
2017-01-10
VanDyke SecureCRT v7.2.6 with Keygen
2014-12-12
Ember_zigbee_reference
2014-11-19
jre-7u5-windows-i586
2014-11-19
Ember Desktop Installer
2014-11-19
linux安装配置常见注意事项
2012-09-02
自己动手操作从u盘启动linux系统
2012-09-02
Source_Insight教程及技巧(大全)——最终整合版.pdf
2012-02-18
FSCapture_V6.9_Chs截图软件
2011-12-11
自己写u盘linux操作系统
2011-12-11
vs2008平台采用css+div布局,jquery代码的模仿淘宝网页
2011-07-31
dreamweaver 做的简单个人主页(包含框架的使用)
2011-06-10
李明老师的linux系统安装课件(第二讲)
2011-06-05
linux应用发展以及在虚拟机下安装linux
2011-06-05
SecureCRT.v6.7
2011-06-04
用mysql数据库 和vs2008实现商业网站
2011-06-02
JDK+Tomcate6.0+Myeclipse8.5详细配置环境
2011-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人