原创 數據結構與算法3:鏈表1

1、刪除未排序鏈表的重複節點 #include <stdlib.h> #include <stdio.h> typedef struct tag_LinkNode { int data; struct tag_LinkNo

原创 使用RUBY遍歷目錄下的所有文件

在看騰訊開源的FSTACK,其中協議棧使用的是FREEBSD的代碼,使用的版本是11.0,對比看是否進行修改,下載的代碼有一個類似標記的地方有一點差異。使用RUBY將這些差異修正,然後對比即可。但是在Windows上保存文件格式爲DOS,

原创 sti()和cli()

1.2.13協議棧中用到這兩個宏: #define sti() __asm__ __volatile__ ("sti": : :"memory") #define cli() __asm__ __volatile__ ("cli": :

原创 DPDK(13):rte_malloc內存管理

轉自:http://www.cnblogs.com/MerlinJ/p/4092432.html,用於個人記錄學習 rte_malloc()爲程序運行過程中分配內存,模擬從堆中動態分配內存空間。 1 void * 2 rte_mal

原创 DPDK(14):rte_mbuf

本文主要介紹rte_mbuf與rte_mempool數據結構之間的組織關係、以及網卡接收到的數據是如何存儲在rte_mbuf中的。   一、rte_mbuf、rte_mempool及網卡收到的數據包在內存中的組織結構        調用r

原创 數據結構與算法4:二叉樹1(二叉查找樹)

二叉查找樹需要注意的是刪除操作,網上很多實現有些問題,還是自己手工實現一遍 #include <stdio.h> #include <stdlib.h> typedef int Type; typedef struct tag_BST

原创 DPDK(11):內存初始化

寫的很好的文章,我應該是不能寫的比這個更加清晰了。 需要指出的一點的時DPDK多進程通過將大葉內存映射到相同的虛擬地址,達到通過隊列發送報文到另外進程只需發送指針即可,能夠取到相同的內容。DPDK的內存管理是DPDK一個很重要的點,是

原创 DPDK(12):rte_mempool內存管理

轉自:http://www.cnblogs.com/MerlinJ/p/4081986.html,作爲記錄參考 DPDK以兩種方式對外提供內存管理方法,一個是rte_mempool,主要用於網卡數據包的收發;一個是rte_malloc,主

原创 協議棧之一:《linux內核網絡棧源代碼情景分析》.(曹桂平)

在工作中或多或少需要和協議棧打交道,因爲公司的策略,公司自有的協議棧基本都是基於開源協議棧的理解重寫的協議棧,在可維護性和性能方面均比開源軟件強勢很多,可惜在公司時更多是調用API,並未從頭到尾研究過一個完整的協議棧。從事網絡工作沒有研究

原创 Raw_Socket原始套接字

純記錄,轉自:http://a1liujin.blog.51cto.com/5519498/1697465 一、創建raw socket的權限:只有root權限才能夠創建. 二、raw socket的用途:主要有三個方面 (1

原创 數據結構與算法4:二叉樹2(平衡二叉樹)

代碼轉自:http://www.cnblogs.com/skywang12345/p/3576969.html,圖文並茂,此處只用於個人備份,感謝原作者skywang12345 avl_tree.h: #ifndef _AVL_TREE

原创 大內核鎖、讀寫鎖、大讀者鎖、RCU和順序鎖

協議棧分析過程中遇到的知識點記錄 對比Linux 1.2.13 和 2.6.3 協議棧,最大的區別在與對多核的支持,所以鎖的支持情況很重要 http://www.ibm.com/developerworks/cn/linux/l-sy

原创 數據結構與算法3:鏈表3

計算兩個分別表示數位的鏈表求和,其實更通用的就是用鏈表表示大數,然後求和,求差等類型的問題 簡單實現如下,需要注意的是進位 #include <stdlib.h> #include <stdio.h> typedef struct ta

原创 DPDK(9):tcpdump出現本機地址替換爲bogon

tcpdump抓包時IP地址莫名其妙變爲bogon,應該是和DNS或者hostname有一定的關係,但是我的電腦hostname又沒有修改,應該和我修改了虛擬機配置有關係。         找到一種辦法是在tcpdump中加參數-nn,姑

原创 DPDK(15):DPDK中斷機制簡析

轉自:http://www.cnblogs.com/MerlinJ/p/4104039.html  DPDK通過在線程中使用epoll模型,監聽UIO設備的事件,來模擬操作系統的中斷處理。   一、中斷初始化 在rte_eal_intr_