Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

パケットの送信元と宛先が同一のときにプログラムが停止してしまう不具合 #4

Open
yamatchan opened this issue Dec 2, 2015 · 6 comments
Assignees
Labels

Comments

@yamatchan
Copy link

以下のコードを実行した時に,lib/path_manager.rb:18#send_packet_outdatapath_idnilが指定されてしまいプログラムが途中で停止してしまう不具合がありました.
パケットの送信元と宛先が同一の時に生じる不具合だと思われます.

$ bin/trema run lib/routing_switch.rb -c trema.conf
$ bin/trema send_packet -s host1 -d host1
@yasuhito
Copy link
Member

yasuhito commented Dec 2, 2015

こういう報告は本当にありがたいです。
Trema の send_packet で -s と -d に同じものを指定したらエラーになるようにしようと思いますが、その修正でオッケーそうですか?

@yasuhito yasuhito added the bug label Dec 2, 2015
@yasuhito yasuhito self-assigned this Dec 2, 2015
@yamatchan
Copy link
Author

Tremaのsend_packetで制限をしてしまうと,他のコードで自分自身にパケットを送信するテストを行いたい時に困ると思いますので,routing_switchで対処したほうが良いかと思います.
最短経路長が0の場合のみ特別な処理を行うように修正したコードをpull requestしましたのでご参考にしていただけますと幸いです.

#6

@yasuhito
Copy link
Member

yasuhito commented Dec 2, 2015

ありがとうございます!
ただ自分自身にパケットを送るテストって、たとえばどういう時に使いそうですか?

On Thu, Dec 3, 2015 at 12:07 AM Yamatchan notifications@github.com wrote:

Tremaのsend_packetで制限をしてしまうと,他のコードで自分自身にパケットを送信するテストを行いたい時に困ると思いますので,routing_switchで対処したほうが良いかと思います.
最短経路長が0の場合のみ特別な処理を行うように修正したコードをpull requestしましたのでご参考にしていただけますと幸いです.

#6 #6


Reply to this email directly or view it on GitHub
#4 (comment).

@yamatchan
Copy link
Author

TCP/IPが正常に実装されているかをテストするために自分自身にpingを送信することがあると思います.
ですが,宛先IPが自分自身であれば,パケットはネットワークには送信されずにループバックするようになっているはずです.
おそらく,Tremaのsend_packetは宛先IPが自分自身の場合でもパケットをループバックせずに,一度ネットワーク上に送信しているため,Tremaのsend_packetを制限しても大丈夫かと思います.

@yasuhito
Copy link
Member

yasuhito commented Dec 3, 2015

ですね! ふつうはループバックになりますが、Trema の send_packet はいったん送ってしまいます。

ループバックっぽくするために、send_packet の望ましい挙動としては、--source と --dest が同じだったら何もパケットは送らず、show_stats で見れるカウンタを一つインクリメントするのがいいのかな? と思いました。どう思いますか?

@yamatchan
Copy link
Author

正しいと思います.
--sourceと--destが同一の場合はパケットを送信せずに,カウンタをインクリメントするとループバックのように見えると思うので,上記処理で大丈夫だと思います.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants