From f24d73dc44022bac7ad76418dce808107e8a0677 Mon Sep 17 00:00:00 2001 From: Vladimir Matena Date: Tue, 7 Apr 2015 12:29:56 +0200 Subject: [PATCH] Add OMNeT++ patches to OMNeT plugin --- .../patches/inet-2.5-win.patch | 306 ++++++++++++++++++ .../patches/mixim-2.3-with-inet-2.5.patch | 15 + .../patches/mixim-custom-ned.patch | 12 + .../patches/omnetpp-4.6-win.patch | 138 ++++++++ 4 files changed, 471 insertions(+) create mode 100644 jdeeco-omnet-plugin/patches/inet-2.5-win.patch create mode 100644 jdeeco-omnet-plugin/patches/mixim-2.3-with-inet-2.5.patch create mode 100644 jdeeco-omnet-plugin/patches/mixim-custom-ned.patch create mode 100644 jdeeco-omnet-plugin/patches/omnetpp-4.6-win.patch diff --git a/jdeeco-omnet-plugin/patches/inet-2.5-win.patch b/jdeeco-omnet-plugin/patches/inet-2.5-win.patch new file mode 100644 index 000000000..c2b883ce5 --- /dev/null +++ b/jdeeco-omnet-plugin/patches/inet-2.5-win.patch @@ -0,0 +1,306 @@ +diff -Naur a/src/networklayer/ldp/LDP.cc b/src/networklayer/ldp/LDP.cc +--- a/src/networklayer/ldp/LDP.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/ldp/LDP.cc 2015-01-14 17:19:45.002124600 +0100 +@@ -658,7 +658,7 @@ + + void LDP::socketEstablished(int, void *yourPtr) + { +- peer_info& peer = myPeers[(long)yourPtr]; ++ peer_info& peer = myPeers[(long long)yourPtr]; + EV << "TCP connection established with peer " << peer.peerIP << "\n"; + + // we must update all entries with nextHop == peerIP +@@ -669,7 +669,7 @@ + + void LDP::socketDataArrived(int, void *yourPtr, cPacket *msg, bool) + { +- peer_info& peer = myPeers[(long)yourPtr]; ++ peer_info& peer = myPeers[(long long)yourPtr]; + EV << "Message arrived over TCP from peer " << peer.peerIP << "\n"; + + delete msg->removeControlInfo(); +@@ -678,7 +678,7 @@ + + void LDP::socketPeerClosed(int, void *yourPtr) + { +- peer_info& peer = myPeers[(long)yourPtr]; ++ peer_info& peer = myPeers[(long long)yourPtr]; + EV << "Peer " << peer.peerIP << " closed TCP connection\n"; + + ASSERT(false); +@@ -695,7 +695,7 @@ + + void LDP::socketClosed(int, void *yourPtr) + { +- peer_info& peer = myPeers[(long)yourPtr]; ++ peer_info& peer = myPeers[(long long)yourPtr]; + EV << "TCP connection to peer " << peer.peerIP << " closed\n"; + + ASSERT(false); +@@ -705,7 +705,7 @@ + + void LDP::socketFailure(int, void *yourPtr, int code) + { +- peer_info& peer = myPeers[(long)yourPtr]; ++ peer_info& peer = myPeers[(long long)yourPtr]; + EV << "TCP connection to peer " << peer.peerIP << " broken\n"; + + ASSERT(false); +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.cc b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.cc +--- a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.cc 2015-01-14 17:48:29.839163700 +0100 +@@ -79,7 +79,7 @@ + return 0; + } + +-void NSCLASS grat_rrep_tbl_timeout(unsigned long data) ++void NSCLASS grat_rrep_tbl_timeout(unsigned long long data) + { + struct grat_rrep_entry *e = + (struct grat_rrep_entry *)tbl_detach_first(&grat_rrep_tbl); +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.h b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.h +--- a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.h 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rrep.h 2015-01-14 17:48:44.797869500 +0100 +@@ -42,7 +42,7 @@ + int dsr_rrep_opt_recv(struct dsr_pkt *dp, struct dsr_rrep_opt *rrep_opt); + int dsr_rrep_send(struct dsr_srt *srt, struct dsr_srt *srt_to_me); + +-void grat_rrep_tbl_timeout(unsigned long data); ++void grat_rrep_tbl_timeout(unsigned long long data); + int grat_rrep_tbl_add(struct in_addr src, struct in_addr prev_hop); + int grat_rrep_tbl_find(struct in_addr src, struct in_addr prev_hop); + int grat_rrep_tbl_init(void); +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.cc b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.cc +--- a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.cc 2015-01-14 17:49:55.502956100 +0100 +@@ -262,7 +262,7 @@ + } + #endif /* __KERNEL__ */ + +-void NSCLASS rreq_tbl_timeout(unsigned long data) ++void NSCLASS rreq_tbl_timeout(unsigned long long data) + { + struct rreq_tbl_entry *e = (struct rreq_tbl_entry *)data; + struct timeval expires; +@@ -352,7 +352,7 @@ + + + e->timer->function = &NSCLASS rreq_tbl_timeout; +- e->timer->data = (unsigned long)e; ++ e->timer->data = (unsigned long long)e; + + INIT_TBL(&e->rreq_id_tbl, ConfVal(RequestTableIds)); + +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.h b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.h +--- a/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.h 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/dsr-rreq.h 2015-01-14 17:50:13.531507000 +0100 +@@ -40,7 +40,7 @@ + int rreq_tbl_route_discovery_cancel(struct in_addr dst); + int dsr_rreq_route_discovery(struct in_addr target); + int dsr_rreq_send(struct in_addr target, int ttl); +-void rreq_tbl_timeout(unsigned long data); ++void rreq_tbl_timeout(unsigned long long data); + struct rreq_tbl_entry *__rreq_tbl_entry_create(struct in_addr node_addr); + struct rreq_tbl_entry *__rreq_tbl_add(struct in_addr node_addr); + int rreq_tbl_add_id(struct in_addr initiator, struct in_addr target, +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.cc b/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.cc +--- a/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.cc 2015-01-14 17:51:30.471440200 +0100 +@@ -443,7 +443,7 @@ + } + + +-void NSCLASS maint_buf_timeout(unsigned long data) ++void NSCLASS maint_buf_timeout(unsigned long long data) + { + struct maint_entry *m, *m2; + +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.h b/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.h +--- a/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.h 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/maint-buf.h 2015-01-14 17:51:39.534470900 +0100 +@@ -19,7 +19,7 @@ + int maint_buf_del_all_id(struct in_addr nxt_hop, unsigned short id); + int maint_buf_del_addr(struct in_addr nxt_hop); + void maint_buf_set_timeout(void); +-void maint_buf_timeout(unsigned long data); ++void maint_buf_timeout(unsigned long long data); + int maint_buf_salvage(struct dsr_pkt *dp); + + #endif /* NO_DECLS */ +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/neigh.cc b/src/networklayer/manetrouting/dsr/dsr-uu/neigh.cc +--- a/src/networklayer/manetrouting/dsr/dsr-uu/neigh.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/neigh.cc 2015-01-14 17:52:30.864488800 +0100 +@@ -172,7 +172,7 @@ + return 0; + } + /* TODO: Implement neighbor table garbage collection */ +-void NSCLASS neigh_tbl_garbage_timeout(unsigned long data) ++void NSCLASS neigh_tbl_garbage_timeout(unsigned long long data) + { + /* tbl_for_each_del(&neigh_tbl, NULL, crit_garbage); */ + +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/neigh.h b/src/networklayer/manetrouting/dsr/dsr-uu/neigh.h +--- a/src/networklayer/manetrouting/dsr/dsr-uu/neigh.h 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/neigh.h 2015-01-14 17:52:42.661846700 +0100 +@@ -40,7 +40,7 @@ + int neigh_tbl_id_inc(struct in_addr neigh_addr); + int neigh_tbl_set_rto(struct in_addr neigh_addr, struct neighbor_info *neigh_info); + int neigh_tbl_set_ack_req_time(struct in_addr neigh_addr); +-void neigh_tbl_garbage_timeout(unsigned long data); ++void neigh_tbl_garbage_timeout(unsigned long long data); + + int neigh_tbl_init(void); + void neigh_tbl_cleanup(void); +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.cc b/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.cc +--- a/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.cc 2015-01-14 17:53:43.487660400 +0100 +@@ -83,7 +83,7 @@ + send_buf.max_len = max_len; + } + +-void NSCLASS send_buf_timeout(unsigned long data) ++void NSCLASS send_buf_timeout(unsigned long long data) + { + struct send_buf_entry *e; + int pkts; +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.h b/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.h +--- a/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.h 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/send-buf.h 2015-01-14 17:53:53.470646400 +0100 +@@ -42,7 +42,7 @@ + int send_buf_set_verdict(int verdict, struct in_addr dst); + int send_buf_init(void); + void send_buf_cleanup(void); +-void send_buf_timeout(unsigned long data); ++void send_buf_timeout(unsigned long long data); + + #endif /* NO_DECLS */ + +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu/timer.h b/src/networklayer/manetrouting/dsr/dsr-uu/timer.h +--- a/src/networklayer/manetrouting/dsr/dsr-uu/timer.h 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu/timer.h 2015-01-14 17:31:25.758405600 +0100 +@@ -30,7 +30,7 @@ + + class DSRUU; + +-typedef void (DSRUU::*fct_t) (unsigned long data); ++typedef void (DSRUU::*fct_t) (unsigned long long data); + + class DSRUUTimer:public TimerHandler + { +@@ -46,8 +46,8 @@ + } + fct_t function; + double expires; +- unsigned long data; +- void init(double expires_, fct_t fct_, unsigned long data_) ++ unsigned long long data; ++ void init(double expires_, fct_t fct_, unsigned long long data_) + { + expires = expires_; + data = data_; +@@ -91,7 +91,7 @@ + exp_jiffies = timeval_to_jiffies(expires); + #else + /* Hmm might overlflow? */ +-unsigned long tmp; ++unsigned long long tmp; + tmp = expires->tv_usec * HZ; + tmp /= 1000000; + exp_jiffies = expires->tv_sec * HZ + tmp; +@@ -126,7 +126,7 @@ + + class DSRUU; + +-typedef void (DSRUU::*fct_t) (unsigned long data); ++typedef void (DSRUU::*fct_t) (unsigned long long data); + class DSRUUTimer:public cOwnedObject + { + protected: +@@ -137,7 +137,7 @@ + public: + simtime_t expires; + fct_t function; +- unsigned long data; ++ unsigned long long data; + + + DSRUUTimer(DSRUU * a):cOwnedObject() +@@ -162,13 +162,13 @@ + { + a_ = a; + } +- void init(simtime_t expires_, fct_t fct_, unsigned long data_) ++ void init(simtime_t expires_, fct_t fct_, unsigned long long data_) + { + expires = expires_; + data = data_; + function = fct_; + } +- void init(fct_t fct_, unsigned long data_) ++ void init(fct_t fct_, unsigned long long data_) + { + expires = 0; + data = data_; +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.cc b/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.cc +--- a/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.cc 2015-01-14 17:44:17.862795000 +0100 +@@ -779,7 +779,7 @@ + return lc_srt_add(srt, timeout, flags); + } + +-void DSRUU::EtxMsgSend(unsigned long data) ++void DSRUU::EtxMsgSend(unsigned long long data) + { + EtxList neigh[15]; + DSRPktExt* msg = new DSRPktExt(); +diff -Naur a/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.h b/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.h +--- a/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.h 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/manetrouting/dsr/dsr-uu-omnetpp.h 2015-01-14 17:44:41.294725900 +0100 +@@ -238,7 +238,7 @@ + }; + // In dsr-uu-omnet.cc used for ETX + ETXNeighborTable etxNeighborTable; +- void EtxMsgSend(unsigned long data); ++ void EtxMsgSend(unsigned long long data); + void EtxMsgProc(cMessage *msg); + double getCost(IPv4Address add); + void AddCost(struct dsr_pkt *,struct dsr_srt *); +diff -Naur a/src/networklayer/routing/rip/RIPRouting.cc b/src/networklayer/routing/rip/RIPRouting.cc +--- a/src/networklayer/routing/rip/RIPRouting.cc 2014-10-30 17:22:13.000000000 +0100 ++++ b/src/networklayer/routing/rip/RIPRouting.cc 2015-01-14 18:01:54.708470100 +0100 +@@ -261,7 +261,7 @@ + } + + ripRoutes.push_back(ripRoute); +- emit(numRoutesSignal, ripRoutes.size()); ++ emit(numRoutesSignal, (unsigned long int) ripRoutes.size()); + return ripRoute; + } + +@@ -915,7 +915,7 @@ + ripRoute->setLastUpdateTime(simTime()); + ripRoute->setChanged(true); + ripRoutes.push_back(ripRoute); +- emit(numRoutesSignal, ripRoutes.size()); ++ emit(numRoutesSignal, (unsigned long int) ripRoutes.size()); + triggerUpdate(); + } + +@@ -1066,7 +1066,7 @@ + ripRoutes.erase(end, ripRoutes.end()); + delete ripRoute; + +- emit(numRoutesSignal, ripRoutes.size()); ++ emit(numRoutesSignal, (unsigned long int)ripRoutes.size()); + } + + /** +@@ -1167,7 +1167,7 @@ + it++; + } + if (emitNumRoutesSignal) +- emit(numRoutesSignal, ripRoutes.size()); ++ emit(numRoutesSignal, (long unsigned int) ripRoutes.size()); + } + + int RIPRouting::getInterfaceMetric(InterfaceEntry *ie) diff --git a/jdeeco-omnet-plugin/patches/mixim-2.3-with-inet-2.5.patch b/jdeeco-omnet-plugin/patches/mixim-2.3-with-inet-2.5.patch new file mode 100644 index 000000000..f96e0599b --- /dev/null +++ b/jdeeco-omnet-plugin/patches/mixim-2.3-with-inet-2.5.patch @@ -0,0 +1,15 @@ +--- mixim.vanilla/Makefile 2013-03-05 21:57:57.000000000 +0100 ++++ mixim/Makefile 2015-01-26 13:10:09.569735743 +0100 +@@ -25,9 +25,9 @@ + # target to generate makefiles that will work with a separate INET installation be sure + # to install the INET project as a sibling of this project or modify the INET_PROJ path. + makefiles-using-inet: +- cd src && opp_makemake -f --deep --make-so -o mixim -O out -Xinet_stub -I$$\(INET_PROJ\)/src/linklayer/ethernet -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio -I$$\(INET_PROJ\)/src/networklayer/common -I$$\(INET_PROJ\)/src/networklayer/icmpv6 -I$$\(INET_PROJ\)/src -I$$\(INET_PROJ\)/src/world/obstacles -I$$\(INET_PROJ\)/src/mobility/models -I$$\(INET_PROJ\)/src/networklayer/xmipv6 -I$$\(INET_PROJ\)/src/mobility -I$$\(INET_PROJ\)/src/networklayer/contract -I$$\(INET_PROJ\)/src/networklayer/manetrouting/base -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mgmt -I$$\(INET_PROJ\)/src/util -I$$\(INET_PROJ\)/src/transport/contract -I$$\(INET_PROJ\)/src/linklayer/radio/propagation -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio/errormodel -I$$\(INET_PROJ\)/src/world/powercontrol -I$$\(INET_PROJ\)/src/linklayer/radio -I$$\(INET_PROJ\)/src/util/headerserializers/tcp -I$$\(INET_PROJ\)/src/networklayer/ipv4 -I$$\(INET_PROJ\)/src/util/headerserializers/ipv4 -I$$\(INET_PROJ\)/src/base -I$$\(INET_PROJ\)/src/util/headerserializers -I$$\(INET_PROJ\)/src/world/radio -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mac -I$$\(INET_PROJ\)/src/networklayer/ipv6 -I$$\(INET_PROJ\)/src/transport/sctp -I$$\(INET_PROJ\)/src/util/headerserializers/udp -I$$\(INET_PROJ\)/src/networklayer/ipv6tunneling -I$$\(INET_PROJ\)/src/battery/models -I$$\(INET_PROJ\)/src/applications/pingapp -I$$\(INET_PROJ\)/src/linklayer/contract -I$$\(INET_PROJ\)/src/util/headerserializers/sctp -I$$\(INET_PROJ\)/src/transport/tcp_common -I$$\(INET_PROJ\)/src/networklayer/arp -I$$\(INET_PROJ\)/src/transport/udp -L$$\(INET_PROJ\)/out/$$\(CONFIGNAME\)/src -linet -DMIXIM_INET -DINET_IMPORT -KINET_PROJ=$(INET_PROJECT_DIR) +- cd examples && opp_makemake -f --deep -o miximexamples -O out -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio -I$$\(INET_PROJ\)/src/linklayer/ethernet -I$$\(INET_PROJ\)/src/networklayer/common -I../src/modules/phy -I$$\(INET_PROJ\)/src -I$$\(INET_PROJ\)/src/networklayer/icmpv6 -I$$\(INET_PROJ\)/src/world/obstacles -I$$\(INET_PROJ\)/src/networklayer/xmipv6 -I$$\(INET_PROJ\)/src/networklayer/manetrouting/base -I$$\(INET_PROJ\)/src/mobility -I$$\(INET_PROJ\)/src/mobility/models -I$$\(INET_PROJ\)/src/networklayer/contract -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mgmt -I../src/base/connectionManager -I$$\(INET_PROJ\)/src/util -I$$\(INET_PROJ\)/src/transport/contract -I$$\(INET_PROJ\)/src/linklayer/radio/propagation -I../src/base/phyLayer -I../src/base/modules -I../src/base/utils -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio/errormodel -I$$\(INET_PROJ\)/src/linklayer/radio -I$$\(INET_PROJ\)/src/world/powercontrol -I$$\(INET_PROJ\)/src/util/headerserializers/tcp -I$$\(INET_PROJ\)/src/networklayer/ipv4 -I../src/base/messages -I../src/modules/utility -I$$\(INET_PROJ\)/src/util/headerserializers/ipv4 -I$$\(INET_PROJ\)/src/base -I../src/base -I$$\(INET_PROJ\)/src/util/headerserializers -I$$\(INET_PROJ\)/src/world/radio -I../src/modules/analogueModel -I../src/modules/messages -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mac -I$$\(INET_PROJ\)/src/networklayer/ipv6 -I$$\(INET_PROJ\)/src/transport/sctp -I$$\(INET_PROJ\)/src/util/headerserializers/udp -I$$\(INET_PROJ\)/src/networklayer/ipv6tunneling -I$$\(INET_PROJ\)/src/applications/pingapp -I$$\(INET_PROJ\)/src/battery/models -I$$\(INET_PROJ\)/src/util/headerserializers/sctp -I$$\(INET_PROJ\)/src/linklayer/contract -I$$\(INET_PROJ\)/src/networklayer/arp -I$$\(INET_PROJ\)/src/transport/tcp_common -I$$\(INET_PROJ\)/src/transport/udp -L$$\(INET_PROJ\)/out/$$\(CONFIGNAME\)/src -L../out/$$\(CONFIGNAME\)/src -lmixim -linet -DMIXIM_INET -DINET_IMPORT -KINET_PROJ=$(INET_PROJECT_DIR) +- cd tests && opp_makemake -f --deep -o miximtests -O out -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio -I$$\(INET_PROJ\)/src/linklayer/ethernet -I$$\(INET_PROJ\)/src/networklayer/common -I../src/modules/phy -I$$\(INET_PROJ\)/src -I$$\(INET_PROJ\)/src/networklayer/icmpv6 -I$$\(INET_PROJ\)/src/world/obstacles -I$$\(INET_PROJ\)/src/networklayer/xmipv6 -I$$\(INET_PROJ\)/src/networklayer/manetrouting/base -I$$\(INET_PROJ\)/src/networklayer/contract -I$$\(INET_PROJ\)/src/mobility -I$$\(INET_PROJ\)/src/mobility/models -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mgmt -I../src/base/connectionManager -I$$\(INET_PROJ\)/src/util -I$$\(INET_PROJ\)/src/transport/contract -I$$\(INET_PROJ\)/src/linklayer/radio/propagation -I../src/base/phyLayer -I../src/base/modules -I../src/base/utils -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio/errormodel -I$$\(INET_PROJ\)/src/linklayer/radio -I$$\(INET_PROJ\)/src/world/powercontrol -I$$\(INET_PROJ\)/src/util/headerserializers/tcp -I$$\(INET_PROJ\)/src/networklayer/ipv4 -I../src/base/messages -I../src/modules/utility -I$$\(INET_PROJ\)/src/util/headerserializers/ipv4 -I$$\(INET_PROJ\)/src/base -I../src/base -I$$\(INET_PROJ\)/src/util/headerserializers -I$$\(INET_PROJ\)/src/world/radio -I../src/modules/analogueModel -I../src/modules/messages -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mac -I$$\(INET_PROJ\)/src/networklayer/ipv6 -I$$\(INET_PROJ\)/src/transport/sctp -I$$\(INET_PROJ\)/src/util/headerserializers/udp -I$$\(INET_PROJ\)/src/networklayer/ipv6tunneling -I$$\(INET_PROJ\)/src/applications/pingapp -I$$\(INET_PROJ\)/src/battery/models -I$$\(INET_PROJ\)/src/util/headerserializers/sctp -I$$\(INET_PROJ\)/src/linklayer/contract -I$$\(INET_PROJ\)/src/networklayer/arp -I$$\(INET_PROJ\)/src/transport/tcp_common -I$$\(INET_PROJ\)/src/transport/udp -I../src/modules/power/battery -I../src/modules/mac -L$$\(INET_PROJ\)/out/$$\(CONFIGNAME\)/src -L../out/$$\(CONFIGNAME\)/src -lmixim -linet -DMIXIM_INET -DINET_IMPORT -KINET_PROJ=$(INET_PROJECT_DIR) ++ cd src && opp_makemake -f --deep --make-so -o mixim -O out -Xinet_stub -I$$\(INET_PROJ\)/src/linklayer/ethernet -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio -I$$\(INET_PROJ\)/src/networklayer/common -I$$\(INET_PROJ\)/src/networklayer/icmpv6 -I$$\(INET_PROJ\)/src -I$$\(INET_PROJ\)/src/world/obstacles -I$$\(INET_PROJ\)/src/mobility/models -I$$\(INET_PROJ\)/src/mobility/contract -I$$\(INET_PROJ\)/src/mobility/common -I$$\(INET_PROJ\)/src/networklayer/xmipv6 -I$$\(INET_PROJ\)/src/mobility -I$$\(INET_PROJ\)/src/networklayer/contract -I$$\(INET_PROJ\)/src/networklayer/manetrouting/base -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mgmt -I$$\(INET_PROJ\)/src/util -I$$\(INET_PROJ\)/src/transport/contract -I$$\(INET_PROJ\)/src/linklayer/radio/propagation -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio/errormodel -I$$\(INET_PROJ\)/src/world/powercontrol -I$$\(INET_PROJ\)/src/linklayer/radio -I$$\(INET_PROJ\)/src/util/headerserializers/tcp -I$$\(INET_PROJ\)/src/networklayer/ipv4 -I$$\(INET_PROJ\)/src/util/headerserializers/ipv4 -I$$\(INET_PROJ\)/src/base -I$$\(INET_PROJ\)/src/util/headerserializers -I$$\(INET_PROJ\)/src/world/radio -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mac -I$$\(INET_PROJ\)/src/networklayer/ipv6 -I$$\(INET_PROJ\)/src/transport/sctp -I$$\(INET_PROJ\)/src/util/headerserializers/udp -I$$\(INET_PROJ\)/src/networklayer/ipv6tunneling -I$$\(INET_PROJ\)/src/battery/models -I$$\(INET_PROJ\)/src/applications/pingapp -I$$\(INET_PROJ\)/src/linklayer/contract -I$$\(INET_PROJ\)/src/util/headerserializers/sctp -I$$\(INET_PROJ\)/src/transport/tcp_common -I$$\(INET_PROJ\)/src/networklayer/arp -I$$\(INET_PROJ\)/src/transport/udp -L$$\(INET_PROJ\)/out/$$\(CONFIGNAME\)/src -linet -DMIXIM_INET -DINET_IMPORT -KINET_PROJ=$(INET_PROJECT_DIR) ++ cd examples && opp_makemake -f --deep -o miximexamples -O out -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio -I$$\(INET_PROJ\)/src/linklayer/ethernet -I$$\(INET_PROJ\)/src/networklayer/common -I../src/modules/phy -I$$\(INET_PROJ\)/src -I$$\(INET_PROJ\)/src/networklayer/icmpv6 -I$$\(INET_PROJ\)/src/world/obstacles -I$$\(INET_PROJ\)/src/networklayer/xmipv6 -I$$\(INET_PROJ\)/src/networklayer/manetrouting/base -I$$\(INET_PROJ\)/src/mobility -I$$\(INET_PROJ\)/src/mobility/models -I$$\(INET_PROJ\)/src/mobility/contract -I$$\(INET_PROJ\)/src/mobility/common -I$$\(INET_PROJ\)/src/networklayer/contract -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mgmt -I../src/base/connectionManager -I$$\(INET_PROJ\)/src/util -I$$\(INET_PROJ\)/src/transport/contract -I$$\(INET_PROJ\)/src/linklayer/radio/propagation -I../src/base/phyLayer -I../src/base/modules -I../src/base/utils -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio/errormodel -I$$\(INET_PROJ\)/src/linklayer/radio -I$$\(INET_PROJ\)/src/world/powercontrol -I$$\(INET_PROJ\)/src/util/headerserializers/tcp -I$$\(INET_PROJ\)/src/networklayer/ipv4 -I../src/base/messages -I../src/modules/utility -I$$\(INET_PROJ\)/src/util/headerserializers/ipv4 -I$$\(INET_PROJ\)/src/base -I../src/base -I$$\(INET_PROJ\)/src/util/headerserializers -I$$\(INET_PROJ\)/src/world/radio -I../src/modules/analogueModel -I../src/modules/messages -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mac -I$$\(INET_PROJ\)/src/networklayer/ipv6 -I$$\(INET_PROJ\)/src/transport/sctp -I$$\(INET_PROJ\)/src/util/headerserializers/udp -I$$\(INET_PROJ\)/src/networklayer/ipv6tunneling -I$$\(INET_PROJ\)/src/applications/pingapp -I$$\(INET_PROJ\)/src/battery/models -I$$\(INET_PROJ\)/src/util/headerserializers/sctp -I$$\(INET_PROJ\)/src/linklayer/contract -I$$\(INET_PROJ\)/src/networklayer/arp -I$$\(INET_PROJ\)/src/transport/tcp_common -I$$\(INET_PROJ\)/src/transport/udp -L$$\(INET_PROJ\)/out/$$\(CONFIGNAME\)/src -L../out/$$\(CONFIGNAME\)/src -lmixim -linet -DMIXIM_INET -DINET_IMPORT -KINET_PROJ=$(INET_PROJECT_DIR) ++ cd tests && opp_makemake -f --deep -o miximtests -O out -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio -I$$\(INET_PROJ\)/src/linklayer/ethernet -I$$\(INET_PROJ\)/src/networklayer/common -I../src/modules/phy -I$$\(INET_PROJ\)/src -I$$\(INET_PROJ\)/src/networklayer/icmpv6 -I$$\(INET_PROJ\)/src/world/obstacles -I$$\(INET_PROJ\)/src/networklayer/xmipv6 -I$$\(INET_PROJ\)/src/networklayer/manetrouting/base -I$$\(INET_PROJ\)/src/networklayer/contract -I$$\(INET_PROJ\)/src/mobility -I$$\(INET_PROJ\)/src/mobility/models -I$$\(INET_PROJ\)/src/mobility/contract -I$$\(INET_PROJ\)/src/mobility/common -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mgmt -I../src/base/connectionManager -I$$\(INET_PROJ\)/src/util -I$$\(INET_PROJ\)/src/transport/contract -I$$\(INET_PROJ\)/src/linklayer/radio/propagation -I../src/base/phyLayer -I../src/base/modules -I../src/base/utils -I$$\(INET_PROJ\)/src/linklayer/ieee80211/radio/errormodel -I$$\(INET_PROJ\)/src/linklayer/radio -I$$\(INET_PROJ\)/src/world/powercontrol -I$$\(INET_PROJ\)/src/util/headerserializers/tcp -I$$\(INET_PROJ\)/src/networklayer/ipv4 -I../src/base/messages -I../src/modules/utility -I$$\(INET_PROJ\)/src/util/headerserializers/ipv4 -I$$\(INET_PROJ\)/src/base -I../src/base -I$$\(INET_PROJ\)/src/util/headerserializers -I$$\(INET_PROJ\)/src/world/radio -I../src/modules/analogueModel -I../src/modules/messages -I$$\(INET_PROJ\)/src/linklayer/ieee80211/mac -I$$\(INET_PROJ\)/src/networklayer/ipv6 -I$$\(INET_PROJ\)/src/transport/sctp -I$$\(INET_PROJ\)/src/util/headerserializers/udp -I$$\(INET_PROJ\)/src/networklayer/ipv6tunneling -I$$\(INET_PROJ\)/src/applications/pingapp -I$$\(INET_PROJ\)/src/battery/models -I$$\(INET_PROJ\)/src/util/headerserializers/sctp -I$$\(INET_PROJ\)/src/linklayer/contract -I$$\(INET_PROJ\)/src/networklayer/arp -I$$\(INET_PROJ\)/src/transport/tcp_common -I$$\(INET_PROJ\)/src/transport/udp -I../src/modules/power/battery -I../src/modules/mac -L$$\(INET_PROJ\)/out/$$\(CONFIGNAME\)/src -L../out/$$\(CONFIGNAME\)/src -lmixim -linet -DMIXIM_INET -DINET_IMPORT -KINET_PROJ=$(INET_PROJECT_DIR) + + # Create makefiles that allows building mixim without a separate INET installation. + makefiles: diff --git a/jdeeco-omnet-plugin/patches/mixim-custom-ned.patch b/jdeeco-omnet-plugin/patches/mixim-custom-ned.patch new file mode 100644 index 000000000..b40520759 --- /dev/null +++ b/jdeeco-omnet-plugin/patches/mixim-custom-ned.patch @@ -0,0 +1,12 @@ +diff -Naur a/src/modules/nic/Nic802154_TI_CC2420.ned b/src/modules/nic/Nic802154_TI_CC2420.ned +--- a/src/modules/nic/Nic802154_TI_CC2420.ned 2013-03-05 20:57:57.000000000 +0000 ++++ b/src/modules/nic/Nic802154_TI_CC2420.ned 2015-04-07 10:09:23.895465600 +0000 +@@ -45,7 +45,7 @@ + rxTxCurrent = 18.8 mA; // Upper bound + txRxCurrent = 18.8 mA; // idem + +- phy.decider = xmldoc("Nic802154_TI_CC2420_Decider.xml"); ++ phy.decider = default(xmldoc("Nic802154_TI_CC2420_Decider.xml")); + //publishRSSIAlways = false; + phy.headerLength = 48 bit; // ieee 802.15.4 + phy.thermalNoise = default(-110 dBm); diff --git a/jdeeco-omnet-plugin/patches/omnetpp-4.6-win.patch b/jdeeco-omnet-plugin/patches/omnetpp-4.6-win.patch new file mode 100644 index 000000000..bf78ea606 --- /dev/null +++ b/jdeeco-omnet-plugin/patches/omnetpp-4.6-win.patch @@ -0,0 +1,138 @@ +diff -Naur a/configure b/configure +--- a/configure 2014-12-02 11:31:02.000000000 +0100 ++++ b/configure 2015-01-14 15:40:03.123911200 +0100 +@@ -2306,6 +2309,28 @@ + OMNETPP_IMAGE_PATH="/;$OMNETPP_IMAGE_PATH" + EXE_SUFFIX=".exe" + SHARED_LIB_SUFFIX='$(DLL_LIB_SUFFIX)' ++ # on MinGW dll auto importing MUST be used with shared gcc and stdc++ ++ # otherwise exceptions can't be thrown across dll boundaries ++ LDFLAGS_ARCH="$LDFLAGS_ARCH -Wl,--enable-auto-import -shared-libgcc -L/usr/bin" ++ ++ # If we are building on windows (native compile) we have to add the /usr/lib and ++ # /usr/include directories as they are not added by default, but they are needed ++ # to properly find the Tcl/Tk, LibXML2 libraries. ++ if test "$cross_compiling" = no ; then ++ CFLAGS_ARCH="$CFLAGS_ARCH -I/usr/include" ++ LDFLAGS_ARCH="$LDFLAGS_ARCH -L/usr/lib" ++ fi ++ # NOTE: if we are cross-compiling we may need to add the lib and include path ++ # to the cross-compiled TckTk/Xml libs here. They should NOT reside in the default ++ # /usr/lib directory as that would interfere with the native build. ++ ;; ++ *-*-mingw64*) ++ mingw=yes ++ jni_platform=win64 ++ PLATFORM=win32.x86_64 ++ OMNETPP_IMAGE_PATH="/;$OMNETPP_IMAGE_PATH" ++ EXE_SUFFIX=".exe" ++ SHARED_LIB_SUFFIX='$(DLL_LIB_SUFFIX)' + # on MinGW dll auto importing MUST be used with shared gcc and stdc++ + # otherwise exceptions can't be thrown across dll boundaries + LDFLAGS_ARCH="$LDFLAGS_ARCH -Wl,--enable-auto-import -shared-libgcc -L/usr/bin" +diff -Naur a/configure.user b/configure.user +--- a/configure.user 2014-12-02 11:32:18.000000000 +0100 ++++ b/configure.user 2015-01-14 16:50:34.485808700 +0100 +@@ -48,7 +48,7 @@ + # NOTE: that not all 64 bit libraries may be present on your system (i.e. Tcl/Tk and other + # libraries may be missing. Use the NO_TCL=yes if you want to skip the Tcl/Tk based parts) + # +-#LDFLAGS="" ++LDFLAGS="-lpsapi" + + # + # It is possible to have the Tcl files embedded into the compiled OMNeT++ +@@ -113,7 +113,8 @@ + # or: + #TK_CFLAGS="-I$MSYS/include/tcl8.6" + #TK_LIBS="-L$MSYS/bin -ltk86 -ltcl86" +- ++TK_CFLAGS="-I/c/tools64/omnetpp-4.6/tools/win32/mingw64/opt/include" ++TK_LIBS="-L/c/tools64/omnetpp-4.6/tools/win32/mingw64/opt/lib -ltk86 -ltcl86" + # + # With Cygwin, you can try: + # examle:TK_CFLAGS= +@@ -164,6 +165,9 @@ + #EXPAT_CFLAGS= + #EXPAT_LIBS= + ++EXPAT_CFLAGS="-I/c/tools64/omnetpp-4.3/mingw/opt/include" ++EXPAT_LIBS="-L/c/tools64/omnetpp-4.3/mingw/opt/lib -lexpat" ++ + # + # Compiler and linker options for LIBXML (optional component) + # +diff -Naur a/mingwenv.cmd b/mingwenv.cmd +--- a/mingwenv.cmd 2014-12-02 11:32:14.000000000 +0100 ++++ b/mingwenv.cmd 2015-01-14 13:54:11.576779500 +0100 +@@ -1,3 +1,3 @@ + @echo off + set HOME=%~dp0 +-call "%HOME%\tools\win32\mingw32_shell.bat" ++call "%HOME%\tools\win32\mingw64_shell.bat" +diff -Naur a/src/envir/opp_run.cc b/src/envir/opp_run.cc +--- a/src/envir/opp_run.cc 2014-12-02 11:31:04.000000000 +0100 ++++ b/src/envir/opp_run.cc 2015-01-14 16:55:35.080817700 +0100 +@@ -174,7 +174,7 @@ + // look up among all loaded modules + HMODULE handles[1024]; + DWORD bytesNeeded = 0; +- if (!EnumProcessModules(GetCurrentProcess(), handles, sizeof(handles), &bytesNeeded)) ++ if (/*!EnumProcessModules(GetCurrentProcess(), handles, sizeof(handles), &bytesNeeded)*/ false) + { + fprintf(stderr, " Error: opp_run: Could not enumerate currently loaded modules.\n"); + exit(1); +diff -Naur a/src/eventlog/eventlogdefs.h b/src/eventlog/eventlogdefs.h +--- a/src/eventlog/eventlogdefs.h 2014-12-02 11:31:04.000000000 +0100 ++++ b/src/eventlog/eventlogdefs.h 2015-01-14 16:13:01.652784300 +0100 +@@ -48,7 +48,7 @@ + // + // note that C99 defines intptr_t and uintptr_t and uintptr_t would be sufficient here + // but not all supported compilers are C99 compatible +-typedef unsigned long ptr_t; ++typedef unsigned long long ptr_t; + + typedef int64 eventnumber_t; + #define EVENTNUMBER_PRINTF_FORMAT INT64_PRINTF_FORMAT +diff -Naur a/src/sim/nedsupport.cc b/src/sim/nedsupport.cc +--- a/src/sim/nedsupport.cc 2014-12-02 11:31:04.000000000 +0100 ++++ b/src/sim/nedsupport.cc 2015-01-14 16:27:49.618019600 +0100 +@@ -183,7 +183,7 @@ + // Note: it might NOT mean gate vector of this module + if (module->hasGate(ident.c_str())) + { +- return (long) module->gateSize(ident.c_str()); // returns 1 if it's not a vector ++ return (long)(long long) module->gateSize(ident.c_str()); // returns 1 if it's not a vector + } + else + { +@@ -193,7 +193,7 @@ + cModule *siblingModule = module->getSubmodule(ident.c_str(), 0); // returns NULL if submodule is not a vector + if (!siblingModule && module->getSubmodule(ident.c_str())) + return 1L; // return 1 if submodule exists but not a vector +- return (long) siblingModule ? siblingModule->size() : 0L; ++ return (long)(long long) siblingModule ? siblingModule->size() : 0L; + } + + } +diff -Naur a/src/sim/parsim/cnullmessageprot.cc b/src/sim/parsim/cnullmessageprot.cc +--- a/src/sim/parsim/cnullmessageprot.cc 2014-12-02 11:31:04.000000000 +0100 ++++ b/src/sim/parsim/cnullmessageprot.cc 2015-01-14 16:30:59.580959100 +0100 +@@ -106,7 +106,7 @@ + { + sprintf(buf,"resendEOT-%d", i); + cMessage *eotMsg = new cMessage(buf,MK_PARSIM_RESENDEOT); +- eotMsg->setContextPointer((void *)(long)i); // khmm... ++ eotMsg->setContextPointer((void *)(long long)i); // khmm... + segInfo[i].eotEvent = eotMsg; + rescheduleEvent(eotMsg, 0.0); + } +@@ -252,7 +252,7 @@ + if (msg->getKind() == MK_PARSIM_RESENDEOT) + { + // send null messages if window closed for a partition +- int procId = (long) msg->getContextPointer(); // khmm... ++ int procId = (long long) msg->getContextPointer(); // khmm... + sendNullMessage(procId, msg->getArrivalTime()); + } + else if (msg->getKind() == MK_PARSIM_EIT)