今天上午加下午,按照學長的要求修改了隧道模組,而且除錯通過了。
修改主要是去掉其他的模組,而且重新寫了ioctl()函式。經過這次編寫,終於感覺到核心程式設計的繁瑣,不是複雜,而是繁瑣,很多平時經常使用的函式都不可以使用。剛開始的時候想把源位址和目的位址固定了,結果發現核心不支援位址格式轉化的函式,後來只好另外寫了個函式,把我們熟悉十進位制格式的位址轉化成二進位制的位址才行了。
接著是編寫ioctl的函式,還是比較好寫,ioctl函式有三個引數,乙個是struct net_device*是指向裝置的指標,另外乙個是struct ifreq*是訊息的載體,還有乙個int型別的cmd引數。
struct ifreq中有兩個主要的部分,乙個是ifr_name,是255長度的字串,記錄的是裝置的名字,在結構體中給出ifr_name,系統就會去查詢這個名字的裝置並和它通訊,另外乙個是ifr_data,是乙個沒有型別的指標,一般就在這個指標裡面定義執行命令所需要的東西,比如隧道的源位址和目的位址。通過乙個自定義的結構傳送進去。
cmd就是給乙個裝置的命令的型別,一般從siocdevprivate~siocdevprivate +15的範圍是自己定義。另外還有siocgifflags,是表示獲得介面標誌(這個不太明白,需要繼續看看)。
另外就是今天把那個不清不楚的neighbour給刪除了,完全不知道那是個什麼東西,但是什麼時候都沒有發生,估計沒有什麼用吧。
今天有時間看看那個dhcp配置怎麼樣,然後看看dynamo。
萬惡的英語
entity en ti ty ent t n.實體 本質 存在 attribute at trib ute tr bju t n.屬性 標誌,象徵 特質,特性 定語 v.歸於,屬於 perspective per spec tive p r spekt v p s n.遠景,透視,看法 take ...
萬惡的英語
entity en ti ty ent t n.實體 本質 存在 attribute at trib ute tr bju t n.屬性 標誌,象徵 特質,特性 定語 v.歸於,屬於 perspective per spec tive p r spekt v p s n.遠景,透視,看法 take ...
萬惡的中介
中介者模式 鬥地主 using system.collections.generic region 主程式 public class 鬥地主 endregion 乙個牌局 中介者 public class mediator 倍率 public int multiple 加入 public bool ...