原创 Netfilter

netfilter專欄一 netfilter專欄二 netfilter專欄三 netfilter專欄四 netfilter專欄五

原创 Linux TC(traffic control)

Linux網絡之設備接口層:發送數據包流程dev_queue_xmit linux TC設計與實現 Linux Tc

原创 UDP模塊 - socket

內核版本:2.6.34 這部分內容在於說明socket創建後如何被內核協議棧訪問到,只關注兩個問題:sock何時插入內核表的,sock如何被內核訪問的。對於核心的sock的插入、查找函數都給出了流程圖。 sock如何插入內核表 

原创 IPV6過渡技術

IPv6過渡技術介紹 IPV6過渡技術 NE40E V800R011C10 特性描述 - NAT與IPv6過渡技術 02 NE40E V800R010C00 特性描述 - NAT與IPv6過渡技術 01

原创 ovs vlan隔離實驗

ovs-vsctl add-br br0 ifconfig br0 up ovs-vsctl add-port br0 eth0 ovs-vsctl set port eth0 tag=1 ovs-vsctl add-br br1 if

原创 openVswitch(OVS)源代碼分析之工作流程(收發數據包)

        前面已經把分析openVswitch源代碼的基礎(openVswitch(OVS)源代碼分析之數據結構)寫得非常清楚了,雖然訪問的人比較少,也因此讓我看到了一個現象:第一篇,openVswitch(OVS)源代碼

原创 Linux系統調用之SYSCALL_DEFINE

相信熟悉系統調用的都知道,系統調用在內核中的入口都是sys_xxx,我也不例外,記得有一次,我抱着學習一下socket內核實現的心態想在內核中尋找sys_socket系統調用,卻發現只能找到宏定義,怎麼也找不到函數實現。後來經過查

原创 以太網自協商原理

自協商原理:            自協商是通過一種叫做快速連接脈衝(Fast Link Pulse)的信號實現的,簡稱FLP。自協商的雙方通過FLP來交換數據。        在具備自協商能力的端口沒有Link的情況下,端口一

原创 linux驅動 之 module_init解析 (上)

寫過linux驅動的程序猿都知道module_init() 這個函數。那麼我們來了解一下module_init這個函數的具體功能和執行過程 在kernel源碼目錄中找到include\linux\init.h文件 (linux

原创 module_init機制的理解

我們在學習Linux驅動開發時,首先需要了解Linux的模塊化機制(module),但是module並不僅僅用於支撐驅動的加載和卸載。一個最簡單的模塊例子如下: // filename: HelloWorld.c #inclu

原创 openVswitch(OVS)源代碼分析之數據結構

        記得Pascal之父、結構化程序設計的先驅Niklaus Wirth最著名的一本書,書名叫作《算法 + 數據結構 = 程序》。還有位傳奇的軟件工程師Frederick P. Brooks曾經說過:“給我看你的數據

原创 Linux系統調用(syscall)原理

引言:分析Android源碼的過程中,要想從上至下完全明白一行代碼,往往涉及app、framework、native一直到kernel,可能迷失到代碼世界,明白了系統調用原理,或許能幫你峯迴路轉,找到進入kernel函數的入口。本

原创 以太網PHY自協商

以太網端口電口工作模式簡單介紹: 1.以太網口的兩端工作模式(10M半雙工、10M全雙工、100M半雙工、100M全雙工、自協商)必須設置一致。 2.如果一端是固定模式(無論是10M、100M),另外一端是自協商模式,即便能夠協

原创 網絡模塊初始化

初始化相關的文件 include/linux/init.h  初始化相關的宏定義 include/asm-generic/vmlinux.lds.h  編譯鏈接相關的宏定義 init/main.c  啓動時的高級初始化 net/

原创 Linux內核很吊之 module_init解析 (下)

忙了一段時間,終於有時間把inux內核很吊之 module_init解析 (下)整理完畢。從上一篇博文http://blog.csdn.net/richard_liujh/article/details/45669207介紹了m