參考了王斌的文件:
tip:筆者使用的版本是0.99.20
需求:在介面模式下新增一條"ip ospf enable"的命令,什麼也不做,只輸出一些字元;
quagga內的檢視是在vtysh.h定義的,位置:「vtysh/vtysh.c」,我常接觸的主要有以下:
/* vty node structures. */
static struct cmd_node bgp_node =
;static struct cmd_node inte***ce_node =
;static struct cmd_node zebra_node =
;static struct cmd_node bgp_ipv4_node =
;static struct cmd_node ospf_node =
;
我主要用介面檢視和ospf檢視,每個模式下會繫結該模式下可以使用的命令,比如,只有介面模式下才有「ip ospf hello-interval」,而ospf模式下沒有,這就是檢視和命令的關係。需要新增自己的檢視可以在這裡定義,這裡了解下即可,無需修改;
定義「ip ospf enable」命令:
具體說明見王斌的筆記,這裡我就直接加**了,首先是在"ospfd/osfp_vty.c"加defun,具體如下:
defun (inte***ce_ospf_enable,
inte***ce_ospf_enable_cmd,
"ip ospf enable",
"ip information\n"
"ospf inte***ce commands\n"
"enable ip ospf router in this inte***ce\n")
這裡和王斌筆記有點不同,如果按照作者的來,可能會看不到最後的提示資訊,這裡需要加上另外兩串字串,ip和ospf的提示資訊,如果只加上enable的提示資訊的話,那麼你看在敲上「ip ospf ?」的時候可能看到的就是空蕩蕩的,沒提示資訊。
將"ip ospf enable"和inte***ce檢視關聯起來:
需要在"ospf_vty.c"的ospf_vty_if_init函式內新增以下內容:
/*my commands*/
install_element(inte***ce_node,&inte***ce_ospf_enable_cmd);
表示該命令關聯的是inte***ce檢視,這樣就修改完畢了,先不和ospf互動,該命令啥事也不幹,只輸出乙個字串。
[root@sven siwen.xwd]# netstat -nta|grep 260.
tcp 0 0 0.0.0.0:2601 0.0.0.0:* listen
tcp 0 0 0.0.0.0:2609 0.0.0.0:* listen
[root@ siwen.xwd]# telnet localhost 2609
trying ::1...
telnet: connect to address ::1: connection refused
trying 127.0.0.1...
connected to localhost.
escape character is '^]'.
hello, this is quagga (version 0.99.20).
user access verification
password:
ospfd> en
ospfd> enable
ospfd# con
ospfd# configure
% command incomplete.
ospfd# configure te
ospfd# configure terminal
ospfd(config)# int
ospfd(config)# inte***ce eth1
ospfd(config-if)# ip os
ospfd(config-if)# ip ospf
authentication enable authentication on this inte***ce
authentication-key authentication password (key)
cost inte***ce cost
dead-interval interval after which a neighbor is declared dead
enable enable ip ospf router in this inte***ce
hello-interval time between hello packets
message-digest-key message digest authentication password (key)
mtu-ignore disable mtu mismatch detection
network network type
priority router priority
retransmit-interval time between retransmitting lost link state advertisements
transmit-delay link state transmit delay
ospfd(config-if)# ip ospf en
ospfd(config-if)# ip ospf enable
% go go sven
ospfd(config-if)#
可以看到"ip ospf enable"命令已經加入進去,並且有提示資訊,執行完畢後,會輸出字串。
caffe windows新增自己的工程
caffe windows已經編譯成功 win7 1080ti cuda8.0 cudnn5.0 caffe安裝 現在需要在自己的工程中使用caffe,經過一陣子的摸索,找到了乙個稍微不那麼麻煩的方法 不需要複製各種路徑 現總結如下 說明 1 caffe windows指的是caffe的根目錄 2 ...
quagga執行緒機制及命令列使用
a quagga執行緒機制概述 quagga中的執行緒是分佇列排程的,每個佇列以乙個鍊錶的方式實現。執行緒佇列可以分成5個佇列 event timer ready read write。佇列的優先順序由高到低排列。但是,read和write佇列並不參與到優先順序的排列中,實際操作時,如果read和w...
TI BLE 新增自己UUID
可以參考demo的給 的 profile char1 的樣式 我這裡使用 char5 因為在demo中char5 沒有配置成我想要的,我就配置為 16byte的資料長度的可讀寫!gattprofile.h 檔案 1 profile parameters define profile char1 0 ...