2017-11-24 4 views
0

NS-3에서 AODV 모듈을 편집 중입니다.NS-3 스니핑 수동 응답

노드가 데이터 패킷을 다음 노드로 전달할 때 내 AODV 모듈이 다음 노드의 전달 프로세스를 듣고 올바르게 전달하는지 확인해야합니다.

pcap 파일은 다음 노드의 전송을 올바르게 감지하지만 AODV 모듈에서 내 손을 얻을 수 없습니다.

패킷이 관련되어 있지 않기 때문에 패킷이 삭제되고있는 것으로 추측됩니다. 따라서이를 변경하는 방법을 알고 싶습니다.

관련 코드를 변경하려면 어디서 볼 수 있는지 실마리를 줄 수 있습니까?

감사

답변

0

도청은 와이파이 장치 추적 소스 중 하나를 후킹하여 수행 할 수 있습니다. WifiPhy 객체의 MonitorSnifferRx는 사용자가 원하는 것일 수 있습니다. 다음 두 단계가 있습니다. 1) Wi-Fi Phy에 대한 포인터를 얻는 방법과 2) 콜백 함수를 해당 추적 소스에 연결하는 방법입니다.

1 단계)가 이미 대부분 기존의 방법에 AODV로 수행됩니다

RoutingProtocol::NotifyInterfaceUp() 
... 
// Allow neighbor manager use this interface for layer 2 feedback if possible 
Ptr<WifiNetDevice> wifi = dev->GetObject<WifiNetDevice>(); 

이 시점에서, 당신은 PHY를 개체 포인터를 얻을 수 있습니다 : 여기에서

Ptr<WifiPhy> phy = wifi->GetPhy(); 

을, 당신이 원하는 것 TraceConnectWithoutContext()를 사용하여 MonitorSniffRx 추적에서 예상하는 기능 서명과 일치하는 콜백을 사용하여 추적 소스를 연결합니다.

phy->TraceConnectWithoutContext ("MonitorSniffRx", MakeCallback (&InsertYourCallbackFunctionHere)); 

맥 레벨 추적 소스 "TxErrHeader은"유사 같은 방법으로 매여하는 방법을 알아보십시오.

+0

정말 고마워요, 제가 해결했습니다. –

+0

공개적으로 투표 할 수 없다는 것을 용서해주세요. :( –