マルチパスメモ

結局1ノードから送信する方法がよくわかりませんえん(ヽ'ω`)
とりあえずのエセマルチパスの実装として…

  • 送信元/宛先ノードを2個ずつ
    • 送信元/宛先ノードは同じ座標に2つ置く
  • 中継ノードではrecvが実装された瞬間に次ノードへconnectをかける
  • sendmsgで送信を行う

みたいな感じで…

// recv関数内で…
if((this->relay_mode == 1 || clh->relay_mode == 1) && isDst != 1) { 
// relal_modeが設定されたノード or パケットヘッダにリレーが設定 + 宛先ノードではない
	Tcl& tcl = Tcl::instance();	// Tclインスタンス取得
	char command[256];
	sprintf(command, "$ns_ connect %s %s", this->my_agent, this->relay_agent);
	tcl.eval(command);	// Tclコマンドを実行(自AgentとリレーAgentをconnect)
	Packet::free(p);	// Packetのメモリ解放
	return;			// プログラム終了
}