乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Linux內(nèi)核實(shí)踐 - 如何添加網(wǎng)絡(luò)協(xié)議[一]:目的

       杰的個(gè)人圖書館 2012-04-11
      本文只是一個(gè)內(nèi)核網(wǎng)絡(luò)協(xié)議的實(shí)踐的例子,先說(shuō)明添加的目的,下篇開始具體的實(shí)現(xiàn)。

              內(nèi)核版本:2.6.34;在支持802.1主機(jī)上,報(bào)文的一般格式: 

              現(xiàn)在需要支持一種新的協(xié)議[二層] – BRCM協(xié)議,與IP等協(xié)議不同,它位于2層,擁有6字節(jié)的頭部和4字節(jié)的尾部,添加的層次決定了比起添加其它協(xié)議要復(fù)雜一些,新的報(bào)文格式如下,而我們的目的就是要網(wǎng)絡(luò)協(xié)議棧能正常處理這樣的報(bào)文: 

              實(shí)際上BRCM是一種交換機(jī)的內(nèi)部協(xié)議,用處是讓交換機(jī)管理端口能通過(guò)BRCM獲取報(bào)文來(lái)自于交換機(jī)的哪個(gè)端口,或者指定報(bào)文從交換機(jī)哪個(gè)端口出去;當(dāng) 然,這不是我們關(guān)心的內(nèi)容,我們只需要為它挑選一個(gè)協(xié)議號(hào)0x8744,其余內(nèi)容置0就可以了。因此,brcm頭部會(huì)填寫成 88 74 00 00 00 00,brcm尾部會(huì)填寫成 00 00。一個(gè)新協(xié)議的報(bào)文內(nèi)容用wireshark等捕包工具查看的形式如下:
                       [源/目的mac]02 03 04 05 06 07 10 11 12 13 14 15
                       [BRCM報(bào)頭]88 74 00 00 00 00
                       [Vlan報(bào)頭]81 00 00 01
                       [報(bào)文內(nèi)容]……..

              先從設(shè)備的概念來(lái)看下添加BRCM協(xié)議后的層次圖: 

              eth1代表實(shí)際的B4401物理網(wǎng)卡;eth1.X/brcm0.x代表VLAN創(chuàng)建的虛擬網(wǎng)卡,后面的數(shù)字X是vlan號(hào);brcm0代表BRCM創(chuàng) 建的虛擬網(wǎng)卡,數(shù)字0表示測(cè)試用;從圖中可以看到,brcm協(xié)議的添加是通過(guò)添加brcmX虛擬網(wǎng)卡接口實(shí)現(xiàn)的。

              如果BRCM協(xié)議添加正確,那么最終的結(jié)果應(yīng)該是:

               在接收?qǐng)?bào)文時(shí),通過(guò)虛擬設(shè)備BRCM會(huì)脫去brcm的6字節(jié)的頭部與4字節(jié)尾部,當(dāng)然,協(xié)議做的遠(yuǎn)遠(yuǎn)不只這些,但這是核心。 

              在發(fā)送報(bào)文時(shí),通過(guò)虛擬設(shè)備BRCM會(huì)添加6字節(jié)的頭部與4字節(jié)的尾部,當(dāng)然,協(xié)議做的遠(yuǎn)遠(yuǎn)不只這些,但這是核心。

              要做的工作大致是以下幾項(xiàng):
                     1. 確定brcm_dev的存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)
                     2. 編寫struct ptype_base brcm_packet_type
                     3. 添加ioctl調(diào)用供用戶空間調(diào)用,至少包括brcm_dev的創(chuàng)建和刪除
                     4. 添加notifier機(jī)制、netlink機(jī)制、proc機(jī)制
                     5. 添加編譯用的Kconfig, Makefile等,并修改Menuconfig
              數(shù)據(jù)結(jié)構(gòu)是核心,每一步也是一個(gè)網(wǎng)絡(luò)協(xié)議模塊的核心。下一篇開始brcm協(xié)議的添加實(shí)現(xiàn)

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多