bonding的源代碼分析_第1頁
bonding的源代碼分析_第2頁
bonding的源代碼分析_第3頁
bonding的源代碼分析_第4頁
bonding的源代碼分析_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論