quagga是開源路由器軟件,提供的用戶界面與思科,華為的路由器的人機接口幾乎一致,非常有學習價值,尤其是開源的協議代碼,簡直亮瞎了我的小眼睛。 quagga的介紹,我就不贅述了,有興趣的可以找度娘或者去官網看看。 一、通用庫thread quagga是一個純C實現的項目。 C語言 ...
quagga作為一個路由器軟件,自然要提供人機接口。 quagga提供snmp管理接口,而且,自然就會有對應的命令行管理格式,當然一般路由軟件不會提供界面形式的,也許有webui,然而quagga並沒有。 我們要看的就是這個命令行處理的代碼 command。 接觸過類似命令行的朋友肯定有一點點好奇吧,那么數量龐大的命令和參數輸入,還可以提供提示和自動補齊,這肯定不是一件很簡單的事情。 下面是一個配 ...
2016-09-04 22:39 0 1828 推薦指數:
quagga是開源路由器軟件,提供的用戶界面與思科,華為的路由器的人機接口幾乎一致,非常有學習價值,尤其是開源的協議代碼,簡直亮瞎了我的小眼睛。 quagga的介紹,我就不贅述了,有興趣的可以找度娘或者去官網看看。 一、通用庫thread quagga是一個純C實現的項目。 C語言 ...
zebra,中文翻譯是斑馬,於是我打開了宋冬野的《斑馬,斑馬》作為BGM來完成這個篇章,嘿嘿,小資一把! zebra姑且戲稱它是quagga項目的大內總管。 因為它負責管理其他所有協議進程的路由信息的更新與交互,並負責與內核交換信息,如下的架構: 好了,簡介完了 ...
對於各個協議生成的路由信息的處理屬於quagga中非常重要的一個功能,如何在內核進行路由增加,更新,刪除是一個復雜的過程。 quagga在thread任務調度中加入了一種工作隊列,work_queue,與內核的工作隊列類似,是一種相對而言,低優先級的任務,這里的任務看成類似的系統進程 ...
BGP的核心就是交換路由,所以關鍵的部分還是在路由的更新與撤銷上面,這之間包含了繁雜的屬性,community等等可以稱之為業務邏輯的處理過程,不做詳述。 bgp_read函數是路由更新的事件處理函 ...
本文采用以下協議進行授權: 自由轉載-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,轉載請注明作者及出處。 cJSON是一個超輕巧,攜帶方便,單文件,簡單的可以作為ANSI-C標准的Json格式解析庫 ...
quagga支持BGP-4,BGP-4+協議,支持多協議(mpls,isis,ospf等等)以及單播,組播路由的導入和分發。 具體的協議,這里就不附錄了,網絡上有很多資料,或者RFC。 協議源碼的學習基於前幾章的quagga源碼分析,所以剛接觸的朋友最好瀏覽一下quagga的通用框架 ...
cJSON庫是什么? cJSON是一個輕量級的json解析庫。使用起來非常簡單,整個庫非常地簡潔,核心功能的實現都在cJSON.c文件,非常適合閱讀源代碼來學習C語言。最近讀完這個庫的源碼,分享自己收獲的一些心得。 什么是json,照搬json官網的說法: JSON ...
一、GenericAPIView GenericAPIView擴展了APIView,為標准列表和詳細視圖添加了常見的行為。 提供的每個具體通用視圖都是一個GenericAPIView或多個mixin類組合在一起而構建的。 例如: BookView視圖類繼承 ...