- 博客(9)
- 资源 (14)
- 收藏
- 关注
原创 Linux邻居协议 学习笔记 之五 通用邻居项的状态机机制
邻居项的状态机机制是通用邻居层最重要的内容,主要是处理邻居项中状态的改变,其中包括几个邻居状态的定时器机制,以及邻居项的更新,solicit请求的发送等对于通用邻居项的状态机,主要有如下几个状态:NUD_INCOMPLETE、NUD_REACHABLE、NUD_DELAY、NUD_PROBE、NUD_STALE、NUD_NOARP、NUD_PERMANENT、NUD_PROBE、NUD_F
2014-03-26 23:59:00 9427
原创 Linux邻居协议 学习笔记 之四 通用邻居项创建、查找、删除等相关的函数
上节主要是分析了通用邻居层邻居项的垃圾回收机制,这一节主要是分析邻居项的创建、查找、删除等相关的函数,这一节只是介绍函数功能,而没有涉及状态机、通用邻居层的架构等。比如邻居项删除函数neigh_destroy,而这个函数主要是通过垃圾回收机制的调用才会执行删除操作;而对于邻居项创建函数neigh_create,在arp协议下,则在路由缓存与邻居项绑定时会触发调用neigh_create创建邻居项,
2014-03-21 22:38:37 4672
原创 Linux 邻居协议 学习笔记 之三 通用邻居项的垃圾回收机制
对于通用邻居层,我认为主要可以分为三个方面:1、邻居项处理函数,包括邻居项创建、更新、删除等2、邻居项的状态机机制,主要是处理邻居项中状态的改变,其中包括几个邻居状态的定时器机制,也包括发送solicit请求等3、邻居项的垃圾回收机制,主要是负责回收一个邻居表里长时间不用的邻居项,已节省邻居缓存空间。这三个方面需要相互协调工作,才能完成通用邻居层的功能,这一节就分析邻居项的垃圾回收机制
2014-03-20 21:57:45 2870
原创 Linux邻居协议 学习笔记 之二 通用邻居处理函数对应的数据结构的分析
在linux代码中,对于不同的邻居项,抽象出了一个通用的模型,通用邻居层,主要是用来进行邻居项的创建、添加、删除、查找、更新等操作。 对于通用邻居层,最主要的就是邻居项的状态机的设计,本部分先介绍相应的数据结构,在分析通用邻居处理函数时,会仔细分析邻居状态机。本部分会简要介绍状态机。 首先是邻居状态的定义,在通用邻居项中定义了以下邻居状态: #defineNU
2014-03-19 22:14:46 2383
原创 Linux邻居协议 学习笔记 之一 邻居协议概念及arp帧格式
什么是邻居协议?如果一台主机和你的计算机连接在同一个LAN上(也就是说,你和这台主机通过一个共享介质相连或点对点直接相连),那么它就是你的邻居,而且他们有相同的L3网络配置。定义邻居的另一种方式是,一台主机到其邻居必须有且仅有一个L3跳跃点,并且它的L3路由表必须提供可以直接和其邻居通信的一条路劲。不是邻居的主机间通信必须通过网关或路由器。 neighbour项是在什么时候创建的呢?
2014-03-18 21:33:23 3186
原创 Linux 网桥代码分析 六 网桥数据转发函数分析
对于数据包转发函数,主要是分为两大类:数据转发到指定端口、数据扩散到所有端口。 下面就从这两方面进行分析:一 数据转发到指定端口对于数据转发到指定端口的功能,也可以分为两个方面:对入口流量进行的数据转发、对出口流量进行的数据转发 入口流量很好理解:就是桥组中的一个网桥端口接收了数据包,经过网卡驱动后经由函数netif_receive_skb、handle_bridge
2014-03-06 22:16:44 9670 3
原创 Linux 网桥代码分析 五 网桥端口设备接收数据包的处理分析
对于网桥端口设备,底层接收到数据以后,经过网卡驱动的接收函数处理以后,最终会调用函数netif_receive_skb,而netif_receive_skb在对数据包头进行相关处理以及对ptype_all链上注册的相关协议进行调用deliver_skb处理后(包括PF_PACKET类型的rawsocket处理),会调用handle_bridge进入网桥处理,而其会调用br_handle_frame
2014-03-04 21:24:11 6370
原创 linux 网桥代码分析 四 网桥转发数据库的代码分析
四、对网桥转发数据库的操作对于网桥转发数据库,我们一般需要对数据库的初始化、数据库的插入、数据库的查找、数据库的更新、数据库的删除等操作,下面我们就以这几个方向分析fdb相关的代码 1、br_fdb_init 该函数调用kmem_cache_create 来创建一个新缓存(这个函数并没有向缓存分配任何内存)int __init br_fdb_init(void)
2014-03-03 21:48:30 4010
原创 linux 网桥代码分析 三 网桥及网桥端口的添加与删除
1、网桥的添加及相关的函数 br_add_bridge,其函数实现以下功能:1、调用new_bridge_dev创建并初始化一个网桥设备与网桥2、调用register_netdevice注册网桥设备3、调用br_sysfs_addbr增加sysfs相关的功能,主要是建立kobject与sysfs之间的关系 (分析完网桥的代码以后,我会好好学习一下kobje
2014-03-01 23:32:44 4859
hwmon_driver_V1.0.tar.gz
2020-05-16
virtual_tty_driver.tar.gz
2020-04-13
virtual_tty_driver.tar.gz
2020-04-12
virtual_spi_controller_test.tar.gz
2020-03-25
virtual_i2c_controller_test.tar.gz
2020-03-23
linux-kconfig.tar.gz
2019-09-01
Linux netfilter 学习笔记
2019-02-24
linux platform架构解析资料
2019-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人