原创 mmap的使用及pcap文件解析示例

mmap能夠通過將磁盤上的文件映射到內存中,通過指針訪問文件內容。這樣能夠達到快速處理文件。 包含的頭文件爲#include <sys/mman.h>,主要使用的函數有: //打開文件,獲取文件描述符 int open(const cha

原创 解決dpdk kni能夠啓動,卻不能收發數據包的問題

最近一個項目是基於dpdk開發lvs,但是又不想重寫ospf等控制協議,於是決定使用DPDK的KNI接口來做dpdk與內核的之間的數據通道。即使用KNI虛擬出一個網卡,供內核及其其他相關程序使用。 但是在使用kni的過程中出現了問題,就是

原创 linux路由軟件quagga安裝

介紹: quagga是繼承於zebra的一款開源路由軟件,支持多種協議: OSPF、RIP、OSPF6、BGP等。 軟件介紹:http://www.nongnu.org/quagga/ 下載: 下載源碼:http://download.

原创 automake中Makefile.am和configure.ac的格式及編譯過程

(一)寫Makefile.am 當寫完代碼之後,在代碼所在的目錄src中,編寫Makefile.am文件,其內容如下: bin_PROGRAMS = ap_collector ap_server #Add extra debug inf

原创 "Assertion `((message)->descriptor)->magic == 0x28aaeef9' failed."的解決辦法!

使用protoc-c的API時,編碼時出現: protobuf_c_message_get_packed_size: Assertion `((message)->descriptor)->magic == 0x28aaeef9' fa

原创 解決zebra下ospf正常啓動卻無法建立鄰居的問題

zebra正常啓動,配置好ospf之後,卻無法建立鄰居,用tcpdump抓包能夠抓到雙發發送的OSPF報文,ping交換機也沒有問題。 以上問題經過分析,是由iptables限制所導致的,執行以下命令之後鄰居就建立起來了: [root@l

原创 python使用MySQLdb寫數據庫時中文亂碼問題

在用python做寫數據庫的客戶端時, 發生了寫入的中文數據爲亂碼的問題。經過查找資料,發現爲客戶端連接時的編碼方式問題。 使用MySQLdb包。 問題如下圖: 後來在連接數據庫時,進行了編碼方式的設置charset="utf8",就

原创 CentOS配置zebra OSPF

創建zebra和ospfd的配置文件: [root@localhost ~]# cp /usr/local/etc/zebra.conf.sample /usr/local/etc/zebra.conf [root@localhost ~

原创 解決DPDK腳本python執行時“OSError: [Errno 2] No such file or directory”的問題

在執行dpdk的網卡驅動掛載腳本是出現 “ OSError: [Errno 2] No such file or directory” 問題,經查證,是因爲沒有安裝lspci的程序。 [root@bogon tools]# yum ins

原创 安裝dpdk

首先下載dpdk官方安裝包dpdk-2.2.0.tar.xz,官方下載地址爲: http://fast.dpdk.org/rel/dpdk-2.2.0.tar.xz 解壓: [root@localhost dingtao]# tar Jx

原创 shell將多行文本重定向到文件

在shell中,使用Here Document方式將文本重定向到文件,格式如下: ( cat << EOF 要寫的文本 EOF ) > 目標文件 示例test.sh: #! /bin/sh ( cat << EOF { "w

原创 wget斷點續傳和限速

wget斷點續傳和限速 wget 斷點續傳和限速: 1. -c爲斷點續傳 2. –limit-rate 爲限速 wget -c --limit-rate=9m -P /data0/ 10.93.107.38:

原创 自己遇到的linux下c語言內存泄漏總結

內存泄露問題是c語言很容易出現的問題,小程序可以很容易的發現,但是大程序就比較難發現了。 內存泄露是由於動態分配的內存沒有被釋放,可以使用valgrind等工具檢查出來。 常見導致內存泄露的函數有malloc、calloc,以及間接使用m

原创 c語言字符串快速排序qsort()

包含頭文件:  #include <stdlib.h>  #include <string.h> 定義一個字符串結構:  typedef struct stringlist_s {      uint32_t    num_strings

原创 解決運行zebra時“Multiple command installs to node 4 of command”的問題

在2.6.32-573.18.1.el6.toa.x86_64內核上安裝了quagga-1.1.0之後,運行zebra -d時會報錯,信息如下: [root@localhost sbin]# ./zebra -d -f /usr/loca