<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式Linux的3G無線視頻終端的設(shè)計(jì)與實(shí)現(xiàn)

          基于嵌入式Linux的3G無線視頻終端的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2011-08-01 來源:網(wǎng)絡(luò) 收藏

          內(nèi)核netfilter結(jié)構(gòu)在/usr/src/inelude/linux/netfilter.h中定義,類似如下:
          c.jpg
          參數(shù)是:
          list
          Netfilter本身是一個(gè)鉤子鏈;它指向netfilter鉤子的頭部,通常設(shè)置為{NULL,NULL}。
          hook
          該函數(shù)在數(shù)據(jù)包碰到鉤子點(diǎn)時(shí)被調(diào)用。該函數(shù)與前面描述的函數(shù)相同,它必須返回NF_ACCEPT、NF_DROP或NF_QUEUE。如果返回NF_ACCEPT,則下一個(gè)鉤子將被附加到將要調(diào)用的點(diǎn)。如果返回NF_DROP,則數(shù)據(jù)包被丟棄。如果返回NF_QUEUE,則對(duì)數(shù)據(jù)包進(jìn)行排隊(duì)。sK_buff指針被傳遞到該函數(shù)中,并用數(shù)據(jù)包信息如IP報(bào)頭、TCP報(bào)頭等進(jìn)行填充,可以使用sk_buff結(jié)構(gòu)指針來操作或刪除數(shù)據(jù)包(要?jiǎng)h除數(shù)據(jù)包,只需將skb指針設(shè)置為空即可)。
          pf
          協(xié)議簇;例如,適用于IPv4的PF_INET。
          hooknum
          鉤子的掛載點(diǎn),由于本系統(tǒng)不需要在本地對(duì)數(shù)據(jù)包進(jìn)行任何處理,因此選擇的掛在點(diǎn)為NF_IP_PRE_ROUTING,在對(duì)數(shù)據(jù)包進(jìn)行正確性校驗(yàn)后就調(diào)用鉤子函數(shù)處理數(shù)據(jù)包。Priority表明鉤子的優(yōu)先級(jí),在本系統(tǒng)中采用高優(yōu)先級(jí)處理NF_IP_PRI_FIRST。
          內(nèi)核數(shù)據(jù)處理的關(guān)鍵是鉤子函數(shù)的編寫,此函數(shù)規(guī)定了數(shù)據(jù)包在到達(dá)時(shí)需要進(jìn)行的處理過程。
          鉤子函數(shù)框架如下:
          d.jpg
          設(shè)定好特定的鉤子函數(shù)之后,調(diào)用函數(shù)
          int nf_register_hook(struct nf_hook_ops*req);
          將鉤子函數(shù)注冊(cè)至內(nèi)核。一旦該結(jié)構(gòu)注冊(cè)到內(nèi)核中,將調(diào)用這里定義的函數(shù)來處理數(shù)據(jù)包。
          使用函數(shù)
          void nf_unregister_hook(struct nf_hook_ops*req);
          可以將已經(jīng)注冊(cè)入內(nèi)核的鉤子函數(shù)取消,此時(shí),接收到數(shù)據(jù)包將按照內(nèi)核的默認(rèn)規(guī)則來進(jìn)行處理。流程如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/150415.htm

          e.jpg

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();