zebra命令存儲原理_第1頁
zebra命令存儲原理_第2頁
zebra命令存儲原理_第3頁
zebra命令存儲原理_第4頁
zebra命令存儲原理_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、zebra命令存儲原理和使用方法、Zebra命令介紹zebra在設(shè)計命令格式時,將命令節(jié)點NODE和命令COMMAND分開,整個命令結(jié)構(gòu)是一個樹狀,如圖NODEn表示命令節(jié)點,CMDn表示具體命令,在zebra的整個命令行設(shè)計 當(dāng)中,zebra用向量的概念將命令和節(jié)點連接起來,一個全局向量CMDVEC指 向整個命令結(jié)構(gòu),CMDVEC的每個索引值都是一個具體的命令節(jié)點,在每個命 令節(jié)點的結(jié)構(gòu)中又存在各自的命令向量cmdvector,該向量指向隸屬于該節(jié)點的 命令,cmd_vector終端額每個索引值都是一個具體的命令。程序索引順序為 CMDVEC-NODEn-CMDn。二、命令的注冊過程zebr

2、a要成功注冊一個命令,需要以下幾個步驟:(1)安裝一個新節(jié)點(如無需安裝可省略這步)(2)寫一條命令的實現(xiàn)(3)將一條命令掛到節(jié)點下三、zebra命令相關(guān)結(jié)構(gòu)體介紹1. struct vector2. struct cmdnode該結(jié)構(gòu)在command.h中定義,用來表示一個命令節(jié)點,節(jié)點的類型由node_type枚舉 指出,節(jié)點的標(biāo)識字符由prompt表示,func表示該節(jié)點對應(yīng)的操作方法。該節(jié)點下的命 令由vector定義的cmd_voctor表示,例如,在全局配置模式下,命令節(jié)點的定義可以是該節(jié)點在zebra.h中定義,表示一個向量結(jié)構(gòu),在該結(jié)構(gòu)中,max表示目刖使用的最大slot,al

3、loced表示被分配到的slot,maxnode, node);node-func = func;node-cmd_vector = vector_init(VECTOR_MIN_SIZE);在本例中需加在command.c文件的void cmd_init(int terminal)函數(shù) 中,如下圖void cmd in it (int. terminal) GOJiua&nd_Gr = XSTRDUP (MTYPE_STRVEC, ,FKGrN);de5:c_cx. cmd = cominnd_ai;str = XSTRDUe7MTPE_STRVECf rr rr);,六 AL locate

4、 i nitial top vect. o r of commands . *, cjndvec = vector in it (VECTOR_MIN_SIZE);,士 Default host value settings. 士/ ho st in it );/A Install top nodes.古/ins+.all node ( &jnennode=TEN6ER_N0DE;return CMD_5UCE55;在command.c文件中編寫6.安裝命令命令安裝的實質(zhì)是將一個cmd_element結(jié)構(gòu)存儲到cmd_node結(jié)構(gòu)中的成員 cmd_vec向量的一個未被使用的slot里。調(diào)用接口

5、: void install_element(enum node_type, struct cmd_element *cmd);將剛才寫好的命令安裝到定義的節(jié)點下的步驟如下:6.1安裝觸發(fā)節(jié)點觸發(fā)節(jié)點:install_element(ENABLE_NODE,&menger_enable_cmd);安裝如下6052:/install ENAELE_NODE commands*/ 6053 :1 (t erjiLinal) 0605 4 :insl all_deaiilL (ZNAELE NDDE);iiisl all elemeiiL (ENAELE -JDDEf iiie:igeL t iic

6、tbls cu.lLJ安裝在 command.c 文件中的 void cmd_init(int terminal)函數(shù)中6.2安裝自定義節(jié)點自定義節(jié)點:install_element(MENGER_NODE,&menger_hello_cmd);安裝如下06124: if(terminal)06125: inst all element (MENGER NODE f &menqer hello cmd) 06127: 也是安裝在command.c文件中的void cmd_init(int terminal)函數(shù)中五編譯結(jié)果PI ease press Enter to contlnue.i_un

7、T yurcL unLrri v Ly i r Ltf Tdet!-urn off pri1 cccc rrocc ccmrrardEnd current moceard charge to heme mode.PrJ nt conimind Hturn on prJIeged mede coirmanc rjegate a coiimiarcl or set its cefablts Fvr mrrnr 匚 -.nc cnn rr wiriiiy nnrjp Refresh Jnform;tiorstore runrrinc corfig tc 一variable fIasi show runnlng sysiem InformaizlorSystem and mingcmcnt corfiguration set tenet service fLnctiorEnter user conf1 cure mcdE Di splay vhos or vtymi、pn Password:心廿 CVNftcun i yurt! disjbTc home list menger no qili- refresh save bIiljw sysTcri-confJ g tel ne?user-confJ g whoC、N# 門己ngerr

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論