マイコン工作実験日記

Microcontroller を用いての工作、実験記録

DHCPを動かす

2008-09-06 00:47:03 | VoIP
作成したVoIP GWボードでethernetが動作することは確認できたので、DHCPを載せてみました。もともとTINETではDHCP_CFGというコンフィギュレーション パラメータが用意されており、tinet_app_config.h等のファイルで指定することができます。しかしながら、このパラメータを指定してもDHCPのクライアント機能が組み込まれるわけではなく、UDP/IP層にてDHCPのパケットをエラーとせずに通すことができるようになるにすぎません。実際のDHCPクライアント機能は、ユーザが自分で組む必要があります。

そこで簡易的なDHCP機能をひとつのタスクとして実装してみました。起動後1秒ほどしてから、TINETが動き始めた頃を見計らってDHCPのDISOVERパケットを送信するようにしています。ほんとは、ethernetのリンク状態の変化も検出してやるべきなのですが、今のところはそこまでの機能は用意していません。

そういえばMACアドレスについての処理もインチキしています。もともとMake ControllerのファームではSPI EEPROMにシリアルナンバーが書き込まれているらしく、MACアドレスのOUI部分としてはAC-DE-48を使用し、下位の部分にシリアルナンバーを使用しているようです。ほんとは、同じように処理するようにTINETのethernetドライバを組むべきなのですが、現在はテキトウなアドレスをhard codedしてしまっています。

AC-DE-48というOUIも怪しそうです。IEEEのページで検索するとPRIVATEとなっており、Make用に割り当てられているわけではないようです。この番号はMACアドレスとしての使い方の説明のページでも使われている番号ですし。。そういうわけで、ちゃんとしたアドレスを使いたければ秋月のEEPROM買ってきた方が良いのでしょう。