自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (14)
  • 收藏
  • 关注

原创 Linux IGMP SNOOPING 学习笔记 之二 igmp数据包处理

上一节分析了igmp snooping初始相关的流程,这一节主要是分析igmp 数据包处理流程。 一、br_multicast_rcv该函数是igmp snooping留给网桥子系统的外部接口函数,当网桥接收了igmp数据包后就会调用该函数进行后续处理。 什么时候会调用到函数br_multicast_rcv?主要有2个地方会调用到这个函数a)网桥数据转发流程当网桥端

2014-04-28 00:36:11 13843

原创 Linux igmp snooping 学习笔记 之一 相应的数据结构与初始化

一、igmpsnooping相关的数据结构组播相关的数据结构主要有三个,下面分别分析: 1、struct net_bridge_mdb_htable  /*组播组数据库转发表,该结构体将所有的组播组数据库转发项通过hash数组连接到一起*/struct net_bridge_mdb_htable{       structhlist_head          

2014-04-27 15:10:52 7317 3

原创 Linux IGMP 学习笔记 之一 IGMP协议格式

一、IGMP定义及分类IGMP:INTERNET组管理协议,与广播最大的不同是,IGMP允许每一个网络设备决定是否参与到一个特定的多播群组中。       IGMP的ip地址,组播ip地址的范围为224.0.0.0-239.255.255.255。其中224.0.0.1代表子网上的所有计算机,224.0.0.2代表子网上的所有路由器。另外,多播ip地址只可作为目的地址,而且不能生成关于多播

2014-04-24 19:38:07 13320

原创 Linux icmp 学习笔记 之三 icmp相关疑问分析

在上一节的分析中,曾留下3个疑问:在分析icmp数据包处理流程之前,我有如下疑问:1、为什么要为每一个cpu创建一个仅用于发送icmp报文的socket呢,不使用socket不也是可以把icmp报文发送出去吗?2、ping的工作原理是什么呢?3、Traceroute的工作原理是什么呢?1、对于第一个问题,通过上一节的分析,应该有如下原因a)加锁访问,保证同一时刻只能发送一个

2014-04-21 21:52:56 2088

原创 Linux icmp 学习笔记 之二 icmp数据处理流程

在分析icmp数据拜处理流程之前,我有如下疑问:1、为什么要为每一个cpu创建一个仅用于发送icmp报文的socket呢,不使用socket不也是可以把icmp报文发送出去吗?2、ping的工作原理是什么呢?3、Traceroute的工作原理是什么呢? 一、imcp协议的初始化1)ICMP接收处理函数的初始化我们知道icmp协议是附属于ip层的3层协议,且是将icmp数

2014-04-21 00:27:35 16756

原创 Linux icmp 学习笔记 之一 icmp协议相关的格式

前段时间看了 ICMP协议是网络层中一个非常重要的协议,其全称为Internet Control Message Protocol(因特网控制报文协议),ICMP协议弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息 反馈。  在实现中,路由器会使用该协议来报告问题,而主机则会使用该机制来测试目的站是否可达。该报文的最终目的地不是一个应用程序或

2014-04-17 23:45:25 6743

原创 Linux邻居协议 学习笔记 之七 arp数据包处理流程

上面一节分析了arp协议的初始化过程。本节主要是arp数据包的处理流程,在arp初始化时,通过调用dev_add_pack将arp协议的接收处理函数添加到了三层协议数据包处理函数相关的hash链表ptype_base中(关于三层协议数据包处理函数相关的hash链表,请参考文档)。当底层接收到属于本机的arp数据包时,就会调用arp_rcv进行后续处理。    下面我们就分析arp_rcv以及与

2014-04-07 13:37:08 9245 1

原创 Linux 三层、四层接收数据处理函数相关的链表

在底层接收到数据后,通过底层网卡驱动处理完成后,会调用函数netif_receive_skb进行二层mac子层进行处理,对于需要本机处理的三层数据包,是如何调用各三层处理函数的呢?对于ip子层处理完以后,需要发送到本地上层继续处理的数据包,又是如何调用相应四层处理函数的呢? 三层数据接收处理相关的链表及处理流程1、  三层的协议有arp、ipv4、ipv6、ipx等,我比较熟悉且用

2014-04-03 23:21:15 2861

原创 Linux邻居协议 学习笔记 之六 arp协议处理初始化

上面分析完了通用邻居层的架构以及代码处理,下面分析ipv4的邻居协议arp。对于linux邻居协议层,我认为通用邻居层是最重要的实现,arp协议层的处理,主要是涉及三个方面:1、处理arp请求、应答,并创建相应的邻居项 2、发送arp请求,并创建相应的邻居项 3、处理应用层通过ioctl创建或者删除邻居项的请求。它们最终都好调用通用邻居层的函数。 1、arp协议的格式   

2014-04-02 23:43:35 3766

hwmon_driver_V1.0.tar.gz

实现一个虚拟的温度传感器驱动,涉及的知识点包括 1. 实现一个虚拟的i2c总线控制器; 2. 实现一个虚拟的i2c设备,用于模拟温度传感器,主要用于提供转换寄存器、配置寄存器,主要提供四路温度。 3. 实现一个虚拟的i2c驱动,用于和模拟温度传感器通信,主要实现配置温度采集及转换的channel、读取温度; 4. 实现一个虚拟的hwmon driver,该driver实现了四路温度的采集,实现temp_input,并实现show接口,而在show接口中,通过与模拟温度传感器通信,完成温度的采集等功能。 通过实现platform device、platform driver,实现i2c adapter的注册操作。

2020-05-16

virtual_uart_driver.tar.gz

此驱动linux虚拟串口控制器驱动,可用于无开发板模式下雪串口控制器驱动,用于学习uart_driver的开发流程

2020-04-18

virtual_tty_driver.tar.gz

本驱动模块主要实现一个虚拟的串口驱动,该串口驱动仅仅是用于tty子系统驱动的开发学习。针对本驱动,目前实现的是loopback的功能,即应用程序向次虚拟串口驱动写数据时,该驱动程序会将写入的数据再返回应用程序。

2020-04-13

virtual_tty_driver.tar.gz

本驱动模块主要实现一个虚拟的串口驱动,该串口驱动仅仅是用于tty子系统驱动的开发学习。针对本驱动,目前实现的是loopback的功能,即应用程序向次虚拟串口驱动写数据时,该驱动程序会将写入的数据再返回应用程序。

2020-04-12

virtual_spi_controller_test.tar.gz

虚拟spi控制器驱动模拟代码,并模拟了spi device以及应用层测试程序。通过模拟程序,可当我们在没有开发板时,练习spi驱动的流程

2020-03-25

virtual_i2c_controller_test.tar.gz

虚拟的i2c adapter驱动以及虚拟 i2c device的创建,从而可以用于练习linux i2c device driver以及i2c adapter驱动开发流程

2020-03-23

linux-kconfig.tar.gz

移植linux3.10的kconfig工具,使用该工具之后,可以针对不同的需求,生成不同的编译配置文件,完成不同应用组合的构建功能。 (busybox、buildroot也是借助linux 的kconfig工具实现类似功能)

2019-09-01

Linux netfilter 学习笔记

本文档主要为本人博客里的《Linux netfilter学习笔记》的集合,本文主要包括《ip 层netfilter的hook 注册以及执行hook函数的概要分析》、《ip层netfilter的table、rule、match、target结构分析》、《 ip层netfilter的table注册及规则的添加》、《ip层netfilter的table中规则的匹配检查》、《ip层netfilter的filter表的创建及其hook函数分析》、《ip层netfilter的连接跟踪模块的概念及相关的数据结构分析》、《 ip层netfilter的连接跟踪模块初始化》、《ip层netfilter的连接跟踪模块代码分析》、《ip层netfilter的连接跟踪模块 学习小结》、《ip层netfilter的NAT模块初始化以及NAT原理》、《ip层netfilter的NAT模块代码分析》等内容

2019-02-24

windows下定时关机程序

该软件为windows下的定时关机小程序,通过该程序可实现定时关机功能

2019-02-24

linux platform架构解析资料

Linux platform driver 机制和传统的 device driver 机制 ( 通 过 driver_register 函数进行注册 ) 相比,一个十分明显的优势在 于 platform 机制将设备本身的资源注册进内核,由内核统一管理,在驱动程 序中使用这些资源时通过 platform device 提供的标准接口进行申请并使 用。这样提高了驱动和资源管理的独立性,并且拥有较好的可移植性和安全 性 ( 这些标准接口是安全的 )

2019-02-24

linux 2.6 内核设备驱动模型精华

linux 2.6 内核设备驱动模型精华描述,包括链表、hash链表、kobject等

2019-02-24

C ++ 面 试 最新

程序员 面试 帮助程序员 面试 帮助程序员 面试 帮助

2009-08-25

c++思想编程 c++思想编程 c++思想编程

c++编程的思想 c++编程的思想 c++编程的思想 c++编程的思想

2009-06-26

c#有关课件

c#有关课件

2009-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除