![bonding的源代碼分析_第1頁](http://file4.renrendoc.com/view2/M01/01/2E/wKhkFmY9pyaAY_DsAAG1JvOqXxk581.jpg)
![bonding的源代碼分析_第2頁](http://file4.renrendoc.com/view2/M01/01/2E/wKhkFmY9pyaAY_DsAAG1JvOqXxk5812.jpg)
![bonding的源代碼分析_第3頁](http://file4.renrendoc.com/view2/M01/01/2E/wKhkFmY9pyaAY_DsAAG1JvOqXxk5813.jpg)
![bonding的源代碼分析_第4頁](http://file4.renrendoc.com/view2/M01/01/2E/wKhkFmY9pyaAY_DsAAG1JvOqXxk5814.jpg)
![bonding的源代碼分析_第5頁](http://file4.renrendoc.com/view2/M01/01/2E/wKhkFmY9pyaAY_DsAAG1JvOqXxk5815.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2.內(nèi)容*Bonding模塊工作流程綜述。(第3節(jié))*Bonding鏈路狀態(tài)監(jiān)控機(jī)制(mii模式、arp模式)描述。(第4節(jié))碼,請閱讀5節(jié)。模塊通過MII或者ARP偵測到實(shí)際網(wǎng)卡故障時(shí)也會改變自定義的鏈路狀態(tài)值(例如從在主備型工作模式中,如果物理網(wǎng)卡不出現(xiàn)故障,只有一塊網(wǎng)卡(活動網(wǎng)卡)處于而一旦主網(wǎng)卡從故障中恢復(fù),不管當(dāng)前活動網(wǎng)卡是否故障都切換到主網(wǎng)卡。在balance-tlb和收取數(shù)據(jù)包時(shí),物理網(wǎng)卡驅(qū)動的中斷處理函數(shù)把數(shù)據(jù)包放入接收隊(duì)列中,隨后軟中斷NFTRXSOFTIRO的處理函數(shù)netrxaction被調(diào)用,該函數(shù)將調(diào)用接收數(shù)據(jù)包的物理網(wǎng)卡網(wǎng)卡的if(dev->master)skb->dev=dev->master;2.發(fā)送數(shù)據(jù)虛擬網(wǎng)卡的IP地址決定(當(dāng)然前提是物理網(wǎng)卡沒有設(shè)置IFF_NOARP標(biāo)志),并且*根據(jù)被綁定物理網(wǎng)卡的實(shí)際鏈路狀態(tài)(是否故障、網(wǎng)線是否連接)更新bonding模塊自定義的物都等于0則使用參數(shù)值為100的MI鏈路狀態(tài)監(jiān)控(強(qiáng)默認(rèn)是0值。(在ARP鏈路狀態(tài)監(jiān)控中這兩個參數(shù)沒有用)③如果在downdelay毫秒內(nèi)物理網(wǎng)卡始終沒有恢復(fù)正常,則該物理網(wǎng)卡的鏈路狀態(tài)被設(shè)置為如果虛擬網(wǎng)卡工作于主備型工作模式下,則活動狀態(tài)被設(shè)置為卡的鏈路狀態(tài)都是BONDLINKDOWN,所以可能沒有鏈路狀態(tài)為BONDLINKUP或者netifcarrier_ok(dev)都返回非0值),都試圖從該網(wǎng)卡向arp_targets表示的各個IP地址發(fā)送ARP請5.代碼分析該結(jié)構(gòu)是全局結(jié)構(gòu)(每系統(tǒng)一個),對應(yīng)于加載bonding模塊時(shí)傳入的各個參數(shù)名稱類型含義BOND_MODE_ALB自適應(yīng)負(fù)載均衡模式miimonint使用MII鏈路狀態(tài)監(jiān)控時(shí)的時(shí)間間隔(ms)use_carrierint使用MI鏈路狀態(tài)監(jiān)控時(shí)是否使用更新的carrier調(diào)用updelayint使用MII鏈路狀態(tài)監(jiān)控時(shí)從BACK狀態(tài)切換到UP狀態(tài)的時(shí)延(ms)downdelayint使用MII鏈路狀態(tài)監(jiān)控時(shí)從FAIL狀態(tài)切換到DOWN狀態(tài)的時(shí)延(ms)arp_targetsu32[在ARP鏈路狀態(tài)監(jiān)控中將向這些IP地址發(fā)送ARP請求。2.structslave每一個被管轄的物理網(wǎng)卡對應(yīng)一個該數(shù)據(jù)結(jié)構(gòu)的實(shí)例名稱類型含義devstructnet_device*指向被綁定的物理網(wǎng)卡next,prevstructslave*所有的slave數(shù)據(jù)結(jié)構(gòu)通過這兩個指針雙向鏈接到一起形成*循環(huán)*鏈表用于保存MII鏈路狀態(tài)監(jiān)控和ARP鏈路狀態(tài)監(jiān)控的時(shí)延值。用于active-backup模式下的ARP狀態(tài)監(jiān)控links8表示對應(yīng)網(wǎng)卡的鏈路狀態(tài),取下列四個值之一:BOND_LINK_UP上線狀態(tài)BOND_LINK_DOWN故障狀態(tài)BOND_LINK_FAIL網(wǎng)卡出現(xiàn)故障,狀態(tài)BOND_LINK_DOWN切換中BOND_LINK_BACK網(wǎng)卡恢復(fù),狀態(tài)BOND_LINK_UP切換中states8表示對應(yīng)網(wǎng)卡活動狀態(tài),取下列兩個值之一:BONDSTATEACTIVE活動狀態(tài)BOND_STATE_BACKUP后備狀態(tài)original_flagsu32保存被綁定物理網(wǎng)卡原來的flagsperm_hwaddru8[保存被綁定物理網(wǎng)卡原來的MAC地址ad_infostructad_slave_infotlb_infostructtlb_slave_info記錄自適應(yīng)傳輸負(fù)載均衡模式下的“每網(wǎng)卡”相關(guān)狀態(tài)信息duplexu8網(wǎng)卡工作模式(全雙工?)3.structbonding名稱類型含義staticint_initbonding_init(void)2.如果內(nèi)核支持proc文件系統(tǒng),調(diào)用/proc/net/bonding。*bond_init2.釋放*bonding_exit*bonddeinit*如果被綁定網(wǎng)卡處于UP狀態(tài),則ifensla8.設(shè)置slave->dev指向slavedev。slavedev.原型13.恢復(fù)slave_dev的MAC地址(根據(jù)slave->perm_hwaddr)和flags(根據(jù)slave->original_flags)。1.open/close*bond_open(net_device->open接口)2.ioctl接口staticintbond_do_ioctl(structnet_device*bond_dev,structifreq*ifr,intcmd)*鏈路狀態(tài)設(shè)置和查詢(bondethtoolioctl或者ifm*切換當(dāng)前活動的物理網(wǎng)卡(bond_ioctl_change_active)名稱含義rx_packets接收包總數(shù)rx_bytes接收字節(jié)總數(shù)__rx_missed_errors接收時(shí)丟失的包數(shù)(僅僅對某些媒體有效)tx_aborted_errors發(fā)送取消次數(shù)(例如發(fā)送超時(shí))tx_heartbeat_errors心跳信號丟失(僅僅對某些媒體有效)tx_window_errors接收窗口錯誤(不明,需要進(jìn)一步確staticvoidbond_set_multicast_list(structnet_device*bond_dev)staticintbondchangemtu(structnetdevice*bonddev,intnewmtu)該函數(shù)把被虛擬網(wǎng)卡的MTU和被它管轄的所有物理網(wǎng)卡的MTU設(shè)置為同一值,主要做如下操作:4.數(shù)據(jù)包傳輸(接收/發(fā)送)2.netif_running(bond_dev)是否返回非0值*bond_dev_queue_xmit*devqueue_xmil該函數(shù)不是bonding模塊的一部分而是內(nèi)核的一個標(biāo)準(zhǔn)接口,為了清楚起見也把它列出來,請參考*bond_mii_monitorstaticvoidbondmiimonitor(structnetdevice*bonddev)5.如果原來物理網(wǎng)卡的鏈路狀態(tài)為2.如果虛擬網(wǎng)卡工作在模式4.如果虛擬網(wǎng)卡工作在模式模式下,調(diào)用bond_alb_handle_link_change。和netif_carrier_ok都返回非0(真)值,即本地網(wǎng)卡檢查通過,仍然周期性地發(fā)送ARP請求出去),請參3.如果dev->flags中IFF_UP被設(shè)置,netifr用bond_arp_send_all從該網(wǎng)卡發(fā)送ARP請1.如果物理網(wǎng)卡在時(shí)間間隔delta_in_ticks內(nèi)接收過數(shù)據(jù)包,就把網(wǎng)卡的鏈路狀態(tài)設(shè)置為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年共同策劃科技成果權(quán)益分配協(xié)議書
- 2025年建筑行業(yè)勞務(wù)策劃分包安全生產(chǎn)協(xié)議書
- 2025年兼職策劃教師合作勞動合同范本
- 2025年雙方自主協(xié)商放棄撫養(yǎng)費(fèi)的離婚協(xié)議書樣本
- 2025年上海市空氣質(zhì)量改善服務(wù)合同
- 2025年中學(xué)體育師資培訓(xùn)與引進(jìn)合同
- 2025年人才招聘選拔協(xié)議
- 2025年個人居間協(xié)議正式版式
- 2025年合作伙伴合同
- 2025年農(nóng)村環(huán)境監(jiān)測與評估合作協(xié)議
- 建筑施工安全管理及揚(yáng)塵治理檢查投標(biāo)方案(技術(shù)方案)
- 《小學(xué)生數(shù)學(xué)提問能力培養(yǎng)策略研究國內(nèi)外文獻(xiàn)綜述》3600字
- 中專數(shù)學(xué)(基礎(chǔ)模塊)上冊課件
- 智慧農(nóng)業(yè)整體解決方案
- 總經(jīng)理權(quán)責(zé)授權(quán)書
- 家具廠規(guī)章制度
- 三查四定管理制度(參考模板)
- 火龍罐治療面癱患者針對性護(hù)理的有效性研究
- 《體育與健康教學(xué)改革指導(dǎo)綱要》的時(shí)代意義、內(nèi)容特征和踐行路徑兼論新時(shí)代學(xué)校體育的走向
- 員工宿舍檢查表
- 品質(zhì)部經(jīng)理KRA KPI考核表
評論
0/150
提交評論