Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的實(shí)現(xiàn)-創(chuàng)新互聯(lián)

結(jié)論:

1、對(duì)一個(gè)設(shè)備驅(qū)動(dòng)而言,主要從兩個(gè)方面進(jìn)行著手,一個(gè)是控制流,一個(gè)是數(shù)據(jù)流。

專業(yè)從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),高端網(wǎng)站制作設(shè)計(jì),微信小程序定制開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用HTML5建站+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站開發(fā),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。

控制流就是如何控制網(wǎng)絡(luò)設(shè)備,數(shù)據(jù)流則說(shuō)的是報(bào)文的收發(fā)流程。

2、網(wǎng)絡(luò)設(shè)備可以是Linux服務(wù)器的網(wǎng)卡,也可以是嵌入式設(shè)備的cpu或者交換芯片。

3、控制流分為低端的串行總線,如SMI、UART、SPI、USB等,也可以是高速總線,如PCI、PCIE總線等。

4、數(shù)據(jù)流則包含接收?qǐng)?bào)文、發(fā)送報(bào)文,關(guān)鍵的內(nèi)核數(shù)據(jù)結(jié)構(gòu)是skb.

一、網(wǎng)絡(luò)設(shè)備注冊(cè)與初始化

1、 網(wǎng)絡(luò)設(shè)備的注冊(cè)

2、內(nèi)核怎么知道調(diào)用驅(qū)動(dòng)哪個(gè)發(fā)送函數(shù)呢?

    解答:在向內(nèi)核注冊(cè)網(wǎng)絡(luò)設(shè)備時(shí),會(huì)把驅(qū)動(dòng)的實(shí)際發(fā)送函數(shù)掛接在ndo_start_xmit這個(gè)函數(shù)指針。

二、網(wǎng)絡(luò)設(shè)備收包

1、接收?qǐng)?bào)文的流程如下:

 2、驅(qū)動(dòng)收包任務(wù)的處理流程:

三、網(wǎng)絡(luò)設(shè)備發(fā)包

1、驅(qū)動(dòng)發(fā)包處理。

發(fā)包時(shí),不用任務(wù),而是在內(nèi)核調(diào)用驅(qū)動(dòng)的發(fā)包函數(shù)中直接發(fā)送。

實(shí)現(xiàn)思路是,將skb中的data字段和長(zhǎng)度信息得到,然后掛在芯片的BD結(jié)構(gòu)體上,然后啟動(dòng)發(fā)送,硬件就會(huì)發(fā)送出去。

四、網(wǎng)絡(luò)設(shè)備性能提升方法

1、總體思路:

   軟硬件結(jié)合療效好,再結(jié)合指令cache,優(yōu)化收發(fā)流程處理、多核并發(fā)收發(fā)包(轉(zhuǎn)發(fā)核直接使用輪詢而不用中斷收發(fā)包)。

五、skb常用操作方法

1、增、刪、改、查接口:

分配skb: struct sk_buff *dev_alloc_skb(unsigned int length)

釋放skb: void dev_kfree_skb_any(struct sk_buff *skb)

修改skb: 尾部增加內(nèi)容:skb_put

       尾部減少內(nèi)容:skb_trim

       頭部增加內(nèi)容:skb_push

       頭部減少內(nèi)容:skb_pull

查找skb的頭部空間:skb_headroom

查找skb的尾部空間:skb_tailroom

本文名稱:Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的實(shí)現(xiàn)-創(chuàng)新互聯(lián)
當(dāng)前地址:http://muchs.cn/article40/djjgeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站響應(yīng)式網(wǎng)站、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管