2007年2月1日木曜日

ospfd (Quagga) のソースコードを読む

OSPF のお勉強中なので、ソースコードを覗いてみる。
ふむ、ふむ。
日本人の方がこのような素晴らしいお仕事をされていることがとても嬉しい。♪
RFC2328 を参照しながら、
探検してます。

$ sudo apt-get install global (ソースコードの探検ツール GNU GLOBAL のインストール)
$ wget 'http://www.quagga.net/download/quagga-0.98.6.tar.gz'
$ tar xvzf quagga-0.98.6.tar.gz
$ cd quagga-0.98.6
$ gtags
$ cd ospfd

まずはヘッダファイルを探検。

$ less ospfd.h (OSPF の定数)
$ less ospf_packet.h (OSPF パケットの構造体)
$ less ospf_lsa.h (LSA の構造体)

main() 関数から
ospf_main.c: main()
1. root で無ければ、処理を終了。
2. ospf_master_init (); をコール。
3. コマンドラインで与えられたオプションを解析
4. struct thread_master *master = om->master; を代入。
5. *_init (); 関数で各種初期化。
6. vty_read_config (config_file, config_default); 関数でコンフィグを読む。
7. daemon (0, 0); デーモンになる。
8. vty_serv_sock (vty_addr, vty_port, OSPF_VTYSH_PATH); 関数をコールし、VTY 用のソケットを準備。
9. thread_call (&thread); を呼び出し、アクティブなスレッドを順番にコールする。

0 件のコメント: