{"action":"created","issue":{"url":"https://api.github.com/repos/inet-framework/inet/issues/293","repository_url":"https://api.github.com/repos/inet-framework/inet","labels_url":"https://api.github.com/repos/inet-framework/inet/issues/293/labels{/name}","comments_url":"https://api.github.com/repos/inet-framework/inet/issues/293/comments","events_url":"https://api.github.com/repos/inet-framework/inet/issues/293/events","html_url":"https://github.com/inet-framework/inet/issues/293","id":294137497,"number":293,"title":"An issue in AODV","user":{"login":"h-hosseini","id":34283881,"avatar_url":"https://avatars2.githubusercontent.com/u/34283881?v=4","gravatar_id":"","url":"https://api.github.com/users/h-hosseini","html_url":"https://github.com/h-hosseini","followers_url":"https://api.github.com/users/h-hosseini/followers","following_url":"https://api.github.com/users/h-hosseini/following{/other_user}","gists_url":"https://api.github.com/users/h-hosseini/gists{/gist_id}","starred_url":"https://api.github.com/users/h-hosseini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h-hosseini/subscriptions","organizations_url":"https://api.github.com/users/h-hosseini/orgs","repos_url":"https://api.github.com/users/h-hosseini/repos","events_url":"https://api.github.com/users/h-hosseini/events{/privacy}","received_events_url":"https://api.github.com/users/h-hosseini/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-02-03T19:16:32Z","updated_at":"2018-04-02T05:30:42Z","closed_at":null,"author_association":"NONE","body":"When we (Dr. Elisa Rojas and I) worked on AODV, we notice the unusual removal of a RREQ packet in AODV. \r\nIn lines 789-799 of this file: AODVRouting.cc\r\nhttps://github.com/inet-framework/inet/blob/master/src/inet/routing/aodv/AODVRouting.cc\r\nTwo variables \"Originator IP Address\" and \"RREQ ID\" should be considered for deleting a message. But according to line 66 of this file: AODVRouting.h\r\nhttps://github.com/inet-framework/inet/blob/master/src/inet/routing/aodv/AODVRouting.h\r\nOnly the variable of \"RREQ ID\" is compared as the key of the map. So if two different nodes send messages with the same \"RREQ ID\", one of them is stored as the key and the rest are not saved. Then, in lines 794 and 795 of this file:\r\n\r\nhttps://github.com/inet-framework/inet/blob/master/src/inet/routing/aodv/AODVRouting.cc\r\n\r\nThe comparison is only based on the identifiers and the message by the same \"RREQ ID\" was deleted(without checking \"Originator IP Address\")!\r\nOur solution to this problem is as follows:\r\n           if (lhs.originatorAddr < rhs.originatorAddr)\r\n              return true;\r\n            else if (lhs.originatorAddr > rhs.originatorAddr)\r\n              return false;\r\n            else\r\n              if (lhs.rreqID < rhs.rreqID)\r\n                  return true;\r\n              else return false;\r\nInstead of:\r\n return lhs.rreqID < rhs.rreqID;\r\nline 66 of this file: AODVRouting.h\r\nIs this an issue in AODV really? and, is our solution ok or it affects something else?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/inet-framework/inet/issues/comments/377858465","html_url":"https://github.com/inet-framework/inet/issues/293#issuecomment-377858465","issue_url":"https://api.github.com/repos/inet-framework/inet/issues/293","id":377858465,"user":{"login":"ManiAm","id":5473998,"avatar_url":"https://avatars3.githubusercontent.com/u/5473998?v=4","gravatar_id":"","url":"https://api.github.com/users/ManiAm","html_url":"https://github.com/ManiAm","followers_url":"https://api.github.com/users/ManiAm/followers","following_url":"https://api.github.com/users/ManiAm/following{/other_user}","gists_url":"https://api.github.com/users/ManiAm/gists{/gist_id}","starred_url":"https://api.github.com/users/ManiAm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ManiAm/subscriptions","organizations_url":"https://api.github.com/users/ManiAm/orgs","repos_url":"https://api.github.com/users/ManiAm/repos","events_url":"https://api.github.com/users/ManiAm/events{/privacy}","received_events_url":"https://api.github.com/users/ManiAm/received_events","type":"User","site_admin":false},"created_at":"2018-04-02T05:30:42Z","updated_at":"2018-04-02T05:30:42Z","author_association":"NONE","body":"I also confirm this bug.\r\n\r\nAccording to RFC 3561, each RREQ message is uniquely identified using the <PREQ ID, Originator IP Address> tuple. The PREQ ID is a number that is maintained locally by each originating node and is incremented by one from the last used RREQ ID. So both PREQ ID and the originator IP address should be considered in the 'RREQIdentifierCompare' predicate."}}
{"actor":{"display_login":"ManiAm"}}