54 hdr_cmn *cmh = hdr_cmn::access(p);
55 hdr_mac *mach = HDR_MAC(p);
56 int src_mac_addr = mach->macSA();
62 << NOW <<
" uwUFetch_NODE (" << addr
63 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a "
64 <<
" BEACON packet from the HN with MAC address: "
65 << src_mac_addr << std::endl;
71 << NOW <<
" uwUFetch_NODE (" << addr
72 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a "
73 <<
" POLL packet from the HN with MAC address: "
74 << src_mac_addr << std::endl;
80 << NOW <<
" uwUFetch_NODE (" << addr
81 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a "
82 <<
" CBEACON packet from the HN with MAC address: "
83 << src_mac_addr << std::endl;
89 << NOW <<
" uwUFetch_NODE (" << addr
90 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a "
91 <<
" PROBE packet from the NODE with MAC address: "
92 << src_mac_addr << std::endl;
96 <<
")::Phy2MacStartRx()______________________"
97 "Start_to_rx_PROBE_pck"
98 <<
"_from_SENSOR_NODE(" << src_mac_addr <<
")."
106 std::cout << NOW <<
" uwUFetch_NODE (" << addr
107 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a"
108 <<
" TRIGGER packet from the AUV with MAC address: "
109 << src_mac_addr << std::endl;
113 <<
")::Phy2MacStartRx()______________________"
114 "Start_to_rx_TRIGGER_pck"
115 <<
"_from_AUV(" << src_mac_addr <<
")."
124 << NOW <<
" uwUFetch_NODE (" << addr
125 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a "
126 <<
" RTS packet from the HN with MAC address: "
127 << src_mac_addr << std::endl;
133 << NOW <<
" uwUFetch_NODE (" << addr
134 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a "
135 <<
" CTS packet from the AUV with MAC address: "
136 << src_mac_addr << std::endl;
140 <<
")::Phy2MacStartRx()______________________"
141 "Start_to_rx_CTS_pck"
142 <<
"_from_AUV(" << src_mac_addr <<
")."
151 << NOW <<
" uwUFetch_NODE (" << addr
152 <<
") ::Phy2MacStartRx() ---->HN is starting to receive a "
153 <<
" DATA packet from the NODE with MAC address: "
154 << src_mac_addr << std::endl;
158 <<
")::Phy2MacStartRx()______________________"
159 "Start_to_rx_DATA_pck"
160 <<
"_from_SN(" << src_mac_addr <<
")."
171 hdr_cmn *cmh = hdr_cmn::access(p);
172 hdr_mac *mach = HDR_MAC(p);
173 int src_mac_addr = mach->macSA();
174 int dest_mac_addr = mach->macDA();
178 std::cout << NOW <<
"uwUFetch_NODE(" << addr
179 <<
")::Phy2MacEndRx()______________________dest_mac_addr "
180 << dest_mac_addr << std::endl;
183 if ((dest_mac_addr == addr) || (dest_mac_addr == MAC_BROADCAST)) {
189 std::cout << NOW <<
" uwUFetch_NODE (" << addr
190 <<
") ::Phy2MacEndRx() ---->HN has finished to "
192 <<
" BEACON packet from the HN with MAC address: "
193 << src_mac_addr <<
" .DROP IT" << std::endl;
200 std::cout << NOW <<
" uwUFetch_NODE (" << addr
201 <<
") ::Phy2MacEndRx() ---->HN has finished to "
203 <<
" CBEACON packet from the HN with MAC address: "
204 << src_mac_addr <<
" .DROP IT." << std::endl;
211 std::cout << NOW <<
" uwUFetch_NODE (" << addr
212 <<
") ::Phy2MacEndRx() ---->HN has finished to "
214 <<
" PROBE packet from the NODE with MAC address: "
215 << src_mac_addr << std::endl;
219 <<
")::Phy2MacEndRx()________________________"
220 "Finished_to_rx_PROBE"
221 <<
"_pck_from_SENSOR_NODE(" << src_mac_addr
222 <<
")." << std::endl;
227 std::cout << NOW <<
" uwUFetch_NODE (" << addr
228 <<
") ::Phy2MacEndRx() ---->PROBE packet "
230 <<
" is corrupted: DROP IT." << std::endl;
234 <<
")::Phy2MacEndRx()_____________________"
235 "___PROBE_pck_rx_from_SN("
236 << src_mac_addr <<
")_It_s_in_ERROR."
251 std::cout << NOW <<
" uwUFetch_NODE (" << addr
252 <<
") ::Phy2MacEndRx() ---->Physical layer "
254 <<
" address: " << dest_mac_addr
255 <<
" has finished to receive a PROBE packet"
257 <<
" from the NODE with MAC address: "
258 << src_mac_addr << std::endl;
262 <<
")::Phy2MacEndRx()_________________"
263 "_______PROBE_pck_rx_from_SN("
264 << src_mac_addr <<
")_It_s_CORRECT."
283 std::cout << NOW <<
" uwUFetch_NODE (" << addr
284 <<
") ::Phy2MacEndRx() ---->HN is not "
285 "enabled to receive the PROBE"
286 <<
" packet: DROP IT." << std::endl;
289 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
290 <<
")::Phy2MacEndRx()________________________"
291 "HN_is_not_ENABLED_to_rx_PROBE_pck_from_SN("
292 << src_mac_addr <<
")." << std::endl;
310 << NOW <<
" uwUFetch_NODE (" << addr
311 <<
") ::Phy2MacEndRx() ---->HN has finished to "
313 <<
" TRIGGER packet from the AUV with MAC address: "
314 << src_mac_addr << std::endl;
318 <<
")::Phy2MacEndRx()_____________________"
319 "___Finished_to_rx_TRIGGER_pck"
320 <<
"_from_AUV(" << src_mac_addr <<
")."
340 while ((!
Q_data.empty()) &&
361 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
362 <<
")::Phy2MacEndRx()______________________"
363 "__DATA_pck_rx:_source("
365 <<
"destination(" << addr
366 <<
")_id_pck:" << cbrh->
sn() <<
""
372 if ((cmh->error()) || (
Q_data_HN.empty())) {
376 std::cout << NOW <<
" uwUFetch_NODE (" << addr
377 <<
") ::Phy2MacEndRx() ---->TRIGGER "
378 "packet received by the HN"
379 <<
" is corrupted: DROP IT" << std::endl;
383 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
384 <<
")::Phy2MacEndRx()______________________"
385 "__TRIGGER_rx_from_AUV("
387 <<
")_It_s_in_ERROR:IGNORE_It."
401 std::cout << NOW <<
" uwUFetch_NODE (" << addr
402 <<
") ::Phy2MacEndRx() ---->HN reset "
421 std::cout << NOW <<
" uwUFetch_NODE (" << addr
422 <<
") ::Phy2MacEndRx() ---->HN is "
423 "not enabled to receive"
424 <<
" the TRIGGER packet: DROP IT."
429 std::cout << NOW <<
" uwUFetch_NODE (" << addr
430 <<
") ::Phy2MacEndRx() ---->TRIGGER "
431 "packet received by the HN"
432 <<
" is not corrupted, but the HN has 0 "
433 "DATA packet enabled to tx to the "
439 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
440 <<
")::Phy2MacEndRx()______________________"
441 "__TRIGGER_rx_It_s_CORRECT_but_0_DATA_"
455 std::cout << NOW <<
" uwUFetch_NODE (" << addr
456 <<
") ::Phy2MacEndRx() ---->HN reset "
469 std::cout << NOW <<
" uwUFetch_NODE (" << addr
470 <<
") ::Phy2MacEndRx() ---->HN is "
471 "not enabled to receive"
472 <<
" the TRIGGER packet: DROP IT."
479 std::cout << NOW <<
" uwUFetch_NODE (" << addr
480 <<
") ::Phy2MacEndRx() ---->Physical layer "
482 <<
" address: " << dest_mac_addr
483 <<
" has finished to receive a TRIGGER packet"
484 <<
" from the AUV with MAC address: "
485 << src_mac_addr << std::endl;
489 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
490 <<
")::Phy2MacEndRx()________________________"
491 "TRIGGER_rx_It_s_CORRECT_>=1_DATA_to_tx."
512 std::cout << NOW <<
" uwUFetch_NODE (" << addr
513 <<
") ::Phy2MacEndRx() ---->HN has finished to "
515 <<
" CTS packet from the AUV with MAC address: "
516 << src_mac_addr << std::endl;
520 <<
")::Phy2MacEndRx()________________________"
521 "Finished_to_rx_CTS_pck"
522 <<
"_from_AUV(" << src_mac_addr <<
")."
529 std::cout << NOW <<
" uwUFetch_NODE (" << addr
530 <<
") ::Phy2MacEndRx() ---->CTS packet "
532 <<
" is corrupted: DROP IT" << std::endl;
535 <<
")::Phy2MacEndRx()_________________"
536 "_______CTS_pck_rx_from_AUV("
537 << src_mac_addr <<
")_It_s_in_ERROR."
552 std::cout << NOW <<
" uwUFetch_NODE (" << addr
553 <<
") ::Phy2MacEndRx() ---->HN reset the "
555 <<
" and return in IDLE STATE." << std::endl;
558 <<
")::Phy2MacEndRx()_________________"
559 "_______RESET_CTS_timeout."
577 std::cout << NOW <<
" uwUFetch_NODE (" << addr
578 <<
") ::Phy2MacEndRx() ---->Physical layer "
580 <<
" address: " << dest_mac_addr
581 <<
" has finished to receive a CTS packet"
582 <<
" from the AUV with MAC address: "
583 << src_mac_addr << std::endl;
588 <<
")::Phy2MacEndRx()_________________"
589 "_______CTS_pck_rx_from_AUV("
590 << src_mac_addr <<
")_It_s_CORRECT."
594 std::cout << NOW <<
" uwUFetch_NODE (" << addr
595 <<
") ::Phy2MacEndRx() ---->HN reset the "
597 <<
" and COMPUTE IT." << std::endl;
600 <<
")::Phy2MacEndRx()_________________"
601 "_______RESET_CTS_timeout."
622 std::cout << NOW <<
" uwUFetch_NODE (" << addr
623 <<
") ::Phy2MacEndRx() ---->HN is not enabled to "
625 <<
" the CTS packet: DROP IT." << std::endl;
628 <<
")::Phy2MacEndRx()_____________________"
629 "___CTS_pck_rx_from_AUV("
631 <<
")_It_s_not_enabled_to_rx_It."
641 std::cout << NOW <<
" uwUFetch_NODE (" << addr
642 <<
") ::Phy2MacEndRx() ---->HN has finished to "
644 <<
" DATA packet from the NODE with MAC address: "
645 << src_mac_addr << std::endl;
651 <<
")::Phy2MacEndRx()________________________"
652 "End_to_rx_DATA_pck_"
653 <<
"from_SN(" << src_mac_addr <<
")."
659 std::cout << NOW <<
" uwUFetch_NODE( " << addr
660 <<
") ::Phy2MacEndRx() ---->DATA packet received "
662 <<
" is corrupted: DROP IT" << std::endl;
676 <<
")::Phy2MacEndRx()_____________________"
677 "___DATA_pck_rx_by_HN("
678 << addr <<
")_from_SN(" << src_mac_addr
679 <<
")_id_pck:" << cbrh->
sn() <<
""
680 <<
"_It_s_in_ERROR." << std::endl;
689 std::cout << NOW <<
" uwUFetch_NODE (" << addr
690 <<
") ::Phy2MacEndRx() ---->Physical layer of HN "
692 <<
" address: " << dest_mac_addr
693 <<
" has finished to receive a DATA packet"
695 <<
" from the NODE with MAC address: "
696 << src_mac_addr << std::endl;
717 std::cout << NOW <<
" uwUFetch_NODE (" << addr
718 <<
") ::Phy2MacEndRx() ---->The packet received is not "
720 <<
" DROP IT." << std::endl;
725 std::cout << NOW <<
" uwUFetch_NODE (" << addr
726 <<
") ::Phy2MacEndRx() ---->HN has finished to "
728 <<
" POLL packet from the HN with MAC address: "
729 << src_mac_addr <<
" .DROP IT" << std::endl;
736 std::cout << NOW <<
" uwUFetch_NODE (" << addr
737 <<
") ::Phy2MacEndRx() ---->HN has finished to "
739 <<
" PROBE packet from the SENSOR NODE with MAC "
741 << src_mac_addr <<
" .DROP IT" << std::endl;
744 <<
")::Phy2MacEndRx()________________________"
745 "Finished_to_rx_PROBE"
746 <<
"_pck_from_SN(" << src_mac_addr
747 <<
").Not_addressed_to_me:_IGNORE_IT."
755 std::cout << NOW <<
" uwUFetch_NODE (" << addr
756 <<
") ::Phy2MacEndRx() ---->HN has finished to "
758 <<
" TRIGGER packet from the AUV with MAC address ("
759 << src_mac_addr <<
").DROP IT" << std::endl;
763 <<
")::Phy2MacEndRx()________________________"
764 "Finished_to_rx_TRIGGER"
765 <<
"_pck_from_AUV(" << src_mac_addr
766 <<
")._Not_addressed_to_me:_IGNORE_IT."
774 std::cout << NOW <<
" uwUFetch_NODE (" << addr
775 <<
") ::Phy2MacEndRx() ---->HN has finished to "
777 <<
" POLL packet from the HN with MAC address: "
778 << src_mac_addr <<
" .DROP IT" << std::endl;
782 <<
")::Phy2MacEndRx()________________________"
784 <<
"_pck_from_AUV(" << src_mac_addr
785 <<
")._Not_addressed_to_me:_IGNORE_IT."
793 std::cout << NOW <<
" uwUFetch_NODE (" << addr
794 <<
") ::Phy2MacEndRx() ---->HN has finished to "
796 <<
" DATA packet from the SENSOR NODE with MAC "
798 << src_mac_addr <<
" .DROP IT" << std::endl;
802 <<
")::Phy2MacEndRx()________________________"
803 "End_to_rx_DATA_pck_"
804 <<
"from_SN(" << src_mac_addr
805 <<
")._Not_addressed_to_me:_IGNORE_IT."
817 hdr_cmn *cmh = hdr_cmn::access(p);
818 hdr_mac *mach = HDR_MAC(p);
822 std::cout << NOW <<
" uwUFetch_NODE (" << addr
823 <<
") ::Mac2PhyStartTx() ---->MAC layer of the HN passes "
825 <<
" packet to his physical layer." << std::endl;
827 if (mach->macDA() == -1) {
830 <<
")::Mac2PhyStartTx()______________________"
831 "Start_tx_of_BEACON_pck_in_BROADCAST."
836 <<
")::Mac2PhyStartTx()______________________"
837 "Start_tx_of_BEACON_pck_to_SENSOR_NODE("
838 << mach->macDA() <<
")." << std::endl;
842 MMac::Mac2PhyStartTx(p);
847 std::cout << NOW <<
" uwUFetch_NODE (" << addr
848 <<
") ::Mac2PhyStartTx() ---->MAC layer of HN passes the "
850 <<
" packet to his physical layer." << std::endl;
854 <<
")::Mac2PhyStartTx()______________________"
855 "Start_tx_of_POLL_pck_to_the_SENSOR_NODE("
860 MMac::Mac2PhyStartTx(p);
865 std::cout << NOW <<
" uwUFetch_NODE (" << addr
866 <<
") ::Mac2PhyStartTx() ---->MAC layer of the HN passes "
868 <<
" packet to his physical layer." << std::endl;
872 <<
")::Mac2PhyStartTx()______________________"
873 "Start_tx_of_CBEACON_pck_in_BROADCAST."
878 MMac::Mac2PhyStartTx(p);
883 std::cout << NOW <<
" uwUFetch_NODE (" << addr
884 <<
") ::Mac2PhyStartTx() ---->MAC layer of the HN passes "
886 <<
" packet to his physical layer." << std::endl;
890 <<
")::Mac2PhyStartTx()______________________"
891 "Start_tx_of_RTS_pck_to_the_AUV("
896 MMac::Mac2PhyStartTx(p);
901 std::cout << NOW <<
" uwUFetch_NODE (" << addr
902 <<
") ::Mac2PhyStartTx() ---->MAC layer of the HN passes "
904 <<
" packet to his physical layer." << std::endl;
907 <<
")::Mac2PhyStartTx()______________________"
908 "Start_tx_of_DATA_pck"
918 MMac::Mac2PhyStartTx(p);
926 hdr_cmn *cmh = hdr_cmn::access(p);
932 << NOW <<
" uwUFetch_NODE (" << addr
933 <<
") ::Phy2MacEndTx() ---->Physical layer of HN has "
935 <<
" to transmit a BEACON packet to the NODEs in broadcast."
940 <<
")::Phy2MacEndTx()________________________End_"
941 "the_tx_of_BEACON_pck_in_BROADCAST."
955 std::cout << NOW <<
" uwUFetch_NODE (" << addr
956 <<
") ::Phy2MacEndTx() ---->Physical layer of the HN has "
958 <<
" to transmit a POLL packet to the NODE with MAC "
964 <<
")::Phy2MacEndTx()________________________End_"
965 "the_tx_of_POLL_pck_to_the_SENSOR NODE"
981 std::cout << NOW <<
" uwUFetch_NODE (" << addr
982 <<
") ::Phy2MacEndTx() ---->Physical layer of the HN has "
984 <<
" to transmit a CBEACON packet to the NODEs in "
989 <<
")::Phy2MacEndTx()________________________End_"
990 "the_tx_of_CBEACON_pck_in_BROADCAST."
1006 << NOW <<
" uwUFetch_NODE (" << addr
1007 <<
") ::Phy2MacEndTx() ---->Physical layer of the HN has "
1009 <<
" to transmit a RTS packet to the AUV with MAC address: "
1013 <<
")::Phy2MacEndTx()________________________End_"
1014 "the_tx_of_RTS_pck_to_the_AUV("
1029 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1030 <<
") ::Phy2MacEndTx() ---->Physical layer of the HN has "
1032 <<
" to transmit a DATA to the AUV with MAC address: "
1042 <<
")::Phy2MacEndTx()________________________End_"
1045 <<
")." << std::endl;
1049 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
1050 <<
")::Phy2MacEndTx()________________________DATA pck"
1054 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1055 <<
") ::Phy2MacEndTx() ---->GET DATA PCK TX BY HN "
1057 <<
" to transmit a DATA to the AUV with MAC address: "
1077 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1078 <<
") ::stateIdle_HN() ---->HN is in IDLE STATE" << std::endl;
1081 <<
")::stateIdle_HN()________________________HN_is_in_"
1090 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1091 <<
") ::stateIdle_HN() ---->HN before to start the "
1092 "communication with"
1093 <<
" sensor node or AUV, empty his data queue." << std::endl;
1119 <<
")::stateIdle_HN()________________________DATA_"
1122 <<
"destination(" << addr
1123 <<
")_id_pck:" << cbrh->
sn() <<
"" << std::endl;
1169 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1170 <<
") ::stateIdle_HN() ---->HN before to start the "
1172 <<
" with SENSOR NODES wait an interval time equal to: "
1173 << 15 <<
"[s]." << std::endl;
1191 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1192 <<
") ::stateIdle_HN() ---->HN waits a TRIGGER "
1193 "packets from the AUV"
1194 <<
" for an interval time equal to: "
1196 <<
" [s] before to start the communication"
1197 <<
" with the SENSOR NODEs." << std::endl;
1209 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1210 <<
") ::stateIdle_HN() ---->HN waits a TRIGGER "
1211 "packets from the AUV"
1212 <<
" for an interval time equal to: "
1214 <<
"[s] before to start the communication"
1215 <<
" with the SENSOR NODEs." << std::endl;
1227 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1228 <<
") ::BeaconTxTOExpire() ---->HN start the procedure for "
1230 <<
" with the SENSOR NODEs, reception of TRIGGER packet is "
1236 <<
")::BeaconTxTOExpire()____________________HN_start_"
1237 "communication_with_SNs."
1271 <<
")::BeaconTxTOExpire()____________________DATA_"
1274 <<
"destination(" << addr
1275 <<
")_id_pck:" << cbrh->
sn() <<
"" << std::endl;
1296 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1297 <<
") ::TRIGGER_rx() ---->HN reset the TRIGGER timer"
1302 <<
")::TRIGGER_rx()_________________________"
1303 "TRIGGER_rx_It_s_CORRECT_and_>= "
1304 "1_DATA_to_tx_and_enabled_to_rx_It."
1338 <<
")::TRIGGER_rx()__________________________"
1339 "PARAMETERS_of_TRIGGER_PACKET: "
1343 <<
")::TRIGGER_rx()__________________________"
1345 << mach->macSA() <<
"." << std::endl;
1346 if (mach->macDA() == -1) {
1349 <<
")::TRIGGER_rx()_______________________"
1350 "___Destination_Address:_BROADCAST."
1355 <<
")::TRIGGER_rx()_______________________"
1356 "___Destination_Address:_"
1357 << mach->macDA() << std::endl;
1361 <<
")::TRIGGER_rx()__________________________"
1362 "MIN_backoff_time_RTS_pck:_"
1366 <<
")::TRIGGER_rx()__________________________"
1367 "MAX_backoff_time_RTS_pck:_"
1371 <<
")::TRIGGER_rx()__________________________"
1372 "MAX_DATA_pck_want_rx_from_HN:_"
1381 <<
")::TRIGGER_rx()__________________________"
1382 "Backoff_timeout_choice:_"
1390 << NOW <<
" uwUFetch_NODE (" << addr
1391 <<
") ::TRIGGER_rx() ---->HN is not enabled to receive"
1392 <<
" the TRIGGER packet: DROP IT." << std::endl;
1396 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
1397 <<
")::TRIGGER_rx()_________________________TRIGGER_rx_"
1398 "It_s_CORRECT_and_>= "
1399 "1_DATA_to_tx_and_not_enabled_to_rx_It:IGNORE_It."
1404 <<
")::TRIGGER_rx()__________________________"
1406 <<
"_to_rx_TRIGGER_pck." << std::endl;
1423 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1424 <<
") ::BCKTOExpired() ---->Back-off timeout is expired:"
1425 <<
" so the first DATA packet can be transmitted by the "
1431 <<
")::BCKTOExpired()________________________"
1432 "Backoff_timeout_expired."
1447 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1448 <<
") ::state_RTS_tx() ---->HN with MAC address " << addr
1450 <<
" a RTS packet that will then transmit to the AUV "
1451 "with MAC address: "
1458 Packet *p = Packet::alloc();
1459 hdr_cmn *cmh = hdr_cmn::access(p);
1460 hdr_mac *mach = HDR_MAC(p);
1467 mach->macSA() = addr;
1482 <<
")::state_RTS_tx()________________________"
1483 "PARAMETERS_of_RTS_PACKET. "
1487 <<
")::state_RTS_tx()________________________"
1489 << mach->macSA() <<
"." << std::endl;
1490 if (mach->macDA() == -1) {
1493 <<
")::state_RTS_tx()________________________"
1494 "Destination_Address:_BROADCAST."
1499 <<
")::state_RTS_tx()________________________"
1500 "Destination_Address:_"
1505 <<
")::state_RTS_tx()________________________RTS_"
1506 "backoff_time_choice_by_HN: "
1510 <<
")::state_RTS_tx()________________________"
1511 "Number_of_pck_HN_would_like_to_tx:_"
1515 <<
")::state_RTS_tx()________________________Size_"
1517 << cmh->size() <<
"[byte]." << std::endl;
1526 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1527 <<
") ::state_RTS_tx() ----> HN with MAC address" << addr
1529 <<
" packet to be transmitted to the HN, then ignore the "
1530 "TRIGGER received from the AUV with"
1532 <<
", and return in IDLE STATE." << std::endl;
1535 <<
")::state_RTS_tx()________________________0_"
1536 "DATA_pck_to_tx:_NO_tx_RTS_pck."
1559 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1560 <<
") ::RTS_tx() ---->HN with MAC address: " << addr
1561 <<
" is transmitting"
1562 <<
" a RTS packet to the AUV with MAC address: "
1575 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1576 <<
") ::state_wait_CTS() ---->HN with MAC address: " << addr
1578 <<
" waiting the CTS packet from AUV with MAC address: "
1580 <<
" waiting time is: " <<
T_CTS << std::endl;
1588 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1589 <<
") ::state_wait_CTS() ---->CTS timer insert by the "
1590 "user for waiting a CTS"
1591 <<
" packet is negative, so use the default value 20[s]"
1598 <<
")::state_wait_CTS()______________________Waiting_"
1599 "a_CTS_pck_from_AUV("
1603 <<
")::state_wait_CTS()______________________......."
1608 <<
")::state_wait_CTS()______________________......."
1613 <<
")::state_wait_CTS()______________________......."
1627 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1628 <<
") ::CtsTOExpired() ---->Timeout CTS expired. HN has not "
1630 <<
" CTS packet within the pre-established time interval "
1631 "that is equal to: "
1633 <<
" so return in IDLE STATE." << std::endl;
1636 <<
")::CtsTOExpired()________________________CTS_"
1685 <<
")::CTS_rx()______________________________"
1686 "PARAMETERS_of_CTS_PACKET."
1690 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
1691 <<
")::CTS_rx()______________________________Source_address:_"
1692 << mach->macSA() <<
"." << std::endl;
1693 if (mach->macDA() == -1) {
1696 <<
")::CTS_rx()______________________________"
1697 "Destination_Address:_BROADCAST."
1702 <<
")::CTS_rx()______________________________"
1703 "Destination_Address:_"
1704 << mach->macDA() <<
"." << std::endl;
1708 <<
")::CTS_rx()______________________________DATA_pck_"
1728 << NOW <<
" uwUFetch_NODE (" << addr
1729 <<
") ::state_DATA_HN_first_tx() ---->HN will be transmit "
1731 <<
" DATA packets to the AUV with MAC address: "
1736 <<
")::state_DATA_HN_first_tx()______________DATA_"
1742 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1743 <<
") ::state_DATA_HN_first_tx() ---->HN is starting "
1744 "transmission of the"
1745 <<
" FIRST DATA packet to the AUV with MAC address: "
1758 mach->macSA() = addr;
1775 int old_sn = cbrh->
sn();
1781 <<
")::state_DATA_HN_first_tx()______________"
1782 "DATA_pck_tx:_source_SN("
1784 << mach->macSA() <<
")_"
1785 <<
"destination(" << mach->macDA()
1786 <<
")_id_pck_original:" << old_sn
1787 <<
"_new_id_pck:" << cbrh->
sn()
1788 <<
"_size:" << cmh->size() <<
"[byte]"
1796 int old_sn = cbrh->
sn();
1802 <<
")::state_DATA_HN_first_tx()______________"
1803 "DATA_pck_tx:_source_SN("
1805 << mach->macSA() <<
")_"
1806 <<
"destination(" << mach->macDA()
1807 <<
")_id_pck_original:" << old_sn
1808 <<
"_new_id_pck:" << cbrh->
sn()
1809 <<
"_size:" << cmh->size() <<
"[byte]"
1828 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1829 <<
") ::DATA_HN_tx() ---->HN is transmitting a DATA "
1845 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1846 <<
") ::DataBeforeTxTOExpired() ---->HN can transmit the next"
1847 <<
" DATA packet." << std::endl;
1863 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1864 <<
") ::state_DATA_HN_tx() ---->HN is starting "
1865 "transmission of the"
1867 <<
" to the AUV with"
1880 mach->macSA() = addr;
1898 int old_sn = cbrh->
sn();
1904 <<
")::state_DATA_HN_tx()____________________"
1905 "DATA_pck_tx:_source_SN("
1907 << mach->macSA() <<
")_"
1908 <<
"destination(" << mach->macDA()
1909 <<
")_id_pck_original:" << old_sn
1910 <<
"_new_id_pck:" << cbrh->
sn()
1911 <<
"_size:" << cmh->size() <<
"[byte]"
1920 int old_sn = cbrh->
sn();
1926 <<
")::state_DATA_HN_tx()____________________"
1927 "DATA_pck_tx:_source_SN("
1929 << mach->macSA() <<
")_"
1930 <<
"destination(" << mach->macDA()
1931 <<
")_id_pck_original:" << old_sn
1932 <<
"_new_id_pck:" << cbrh->
sn()
1933 <<
"_size:" << cmh->size() <<
"[byte]"
1953 <<
")::state_DATA_HN_finish_tx()_____________End_"
1954 "tx_DATA_pcks_to_the_AUV."
1962 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1963 <<
") ::state_DATA_HN_finish_tx() ---->HN has "
1964 "transmitted all his DATA"
1965 <<
" packets to the AUV with MAC address: "
1967 <<
", so return in STATE_CBEACON_TX()." << std::endl;
1984 std::cout << NOW <<
" uwUFetch_NODE (" << addr
1985 <<
") ::state_DATA_HN_finish_tx() ---->HN has "
1986 "transmitted all his DATA"
1987 <<
" packets to the AUV with MAC address: "
2014 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2015 <<
") ::state_BEACON_tx() ---->HN is initializing the BEACON "
2017 <<
" which will then transmit to the NODEs in broadcast."
2022 <<
")::state_BEACON_tx()_____________________"
2023 "Initializing_BEACON_pck."
2030 Packet *p = Packet::alloc();
2031 hdr_cmn *cmh = hdr_cmn::access(p);
2032 hdr_mac *mach = HDR_MAC(p);
2037 mach->set(MF_CONTROL, addr, MAC_BROADCAST);
2040 mach->macSA() = addr;
2059 <<
")::state_BEACON_tx()_____________________"
2060 "PARAMETERS_of_BEACON_pck."
2064 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2065 <<
")::state_BEACON_tx()_____________________Source_address:_"
2066 << mach->macSA() <<
"." << std::endl;
2067 if (mach->macDA() == -1) {
2070 <<
")::state_BEACON_tx()_____________________"
2071 "Destination_address:_BROADCAST."
2076 <<
")::state_BEACON_tx()_____________________"
2077 "Destination_address:_"
2078 << mach->macDA() <<
"." << std::endl;
2082 <<
")::state_BEACON_tx()_____________________MIN_"
2083 "backoff_time_PROBE_pck:_"
2087 <<
")::state_BEACON_tx()_____________________MAX_"
2088 "backoff_time_PROBE_pck: "
2092 <<
")::state_BEACON_tx()_____________________MAX_"
2093 "number_of_CBEACON_that_HN_will_tx:_"
2097 <<
")::state_BEACON_tx()_____________________Size_of_"
2099 << cmh->size() <<
"[byte]." << std::endl;
2115 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2116 <<
") ::BEACON_tx() ---->HN is transmitting a BEACON packet"
2117 <<
" to the NODEs in broadcast." << std::endl;
2132 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2133 <<
") ::state_PROBE_wait() ---->HN is scheduling PROBE TIMER "
2135 <<
T_PROBE <<
"[s]" << std::endl;
2143 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2144 <<
") ::state_wait_PROBE() ---->The waiting time for "
2145 "PROBE packets is negative"
2146 <<
" so set the default value: 15[s]." << std::endl;
2151 <<
")::state_wait_PROBE()____________________Waiting_"
2157 <<
")::state_wait_PROBE()____________________Timeout_"
2159 <<
"_pcks_" <<
T_PROBE <<
"[s]." << std::endl;
2162 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2163 <<
")::state_wait_PROBE()____________________....Waiting_PROBE"
2167 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2168 <<
")::state_wait_PROBE()____________________....Waiting_PROBE"
2172 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2173 <<
")::state_wait_PROBE()____________________....Waiting_PROBE"
2187 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2188 <<
") ::ProbeTOExpired() ---->PROBE timeout is expired: other"
2189 <<
" PROBE packets can not be received by the HN."
2194 <<
")::ProbeTOExpired()______________________PROBE_"
2202 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2203 <<
") ::ProbeTOExpired() ---->HN has received 0 PROBE "
2205 <<
" it has reached the maximum number of attempts to "
2206 "transmit CBEACON packets."
2211 <<
")::ProbeTOExpired()______________________0_"
2212 "PROBE_rx_and_MAX_CBEACON_tx."
2239 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2240 <<
") ::ProbeTOExpired() ---->HN has received 0 PROBE "
2242 <<
" has not reached the maximum number of attempts to "
2243 "transmit CBEACON packets"
2248 <<
")::ProbeTOExpired()______________________0_"
2249 "PROBE_rx_and_another_CBEACON_can_be_tx."
2270 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2271 <<
") ::ProbeTOExpired() ---->HN has received "
2273 <<
" PROBE packets, so start a new transmission of POLL "
2320 <<
")::PROBE_rx()____________________________PROBE_"
2325 <<
")::PROBE_rx()____________________________"
2326 "PARAMETERS_OF_PROBE_PCK."
2330 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2331 <<
")::PROBE_rx()____________________________Source_address:_"
2332 << mach->macSA() << std::endl;
2335 <<
")::PROBE_rx()____________________________"
2336 "Destination_address:_"
2337 << mach->macDA() << std::endl;
2340 <<
")::PROBE_rx()____________________________DATA_pck_"
2346 <<
")::PROBE_rx()____________________________Backoff_"
2347 "time_choice_before_tx_PROBE:_"
2349 <<
"[s]." << std::endl;
2357 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2358 <<
") ::PROBE_Rx() ---->HN has received the maximum "
2360 <<
" packets and the timeout is not expired. Consequence "
2361 "of that, the HN with MAC address: "
2363 <<
" not receive other PROBEs packets." << std::endl;
2366 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2367 <<
") ::PROBE_Rx() ---->HN reset the PROBE timer"
2368 <<
" and start the transmission of POLL packets."
2373 <<
")::PROBE_rx()____________________________MAX_"
2374 "number_of_PROBE_pck_rx:_reset_PROBE_timeout."
2389 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2390 <<
") ::PROBE_Rx() ---->Timeout is not expired and "
2392 <<
" packet can be received by the HN with MAC address: "
2393 << addr <<
" from other NODEs." << std::endl;
2403 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2404 <<
") ::state_wait_other_PROBE() ---->HN is waiting the "
2411 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2412 <<
")::state_wait_other_PROBE()______________....Waiting_PROBE."
2416 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2417 <<
")::state_wait_other_PROBE()______________....Waiting_PROBE."
2421 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2422 <<
")::state_wait_other_PROBE()______________....Waiting_PROBE."
2437 << NOW <<
" uwUFetch_NODE (" << addr
2438 <<
") ::state_POLL_tx() ---->HN is creating a POLL packet that"
2439 <<
" will then transmit at the first node of the queue that "
2440 "contain the PROBEs received. "
2447 Packet *p = Packet::alloc();
2448 hdr_cmn *cmh = hdr_cmn::access(p);
2449 hdr_mac *mach = HDR_MAC(p);
2456 mach->macSA() = addr;
2484 <<
")::state_POLL_tx()_______________________"
2485 "PARAMETERS_OF_POLL_PCK:"
2489 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2490 <<
")::state_POLL_tx()_______________________Source_address:_"
2491 << mach->macSA() << std::endl;
2494 <<
")::state_POLL_tx()_______________________"
2495 "Destination_address:_"
2496 << mach->macDA() << std::endl;
2499 <<
")::state_POLL_tx()_______________________DATA_pck_"
2505 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2506 <<
")::state_POLL_tx()_______________________Size_of_POLL_pck:_"
2507 << cmh->size() <<
"[byte]." << std::endl;
2523 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2524 <<
") ::POLL_tx() ---->HN is transmitting a POLL packet to "
2543 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2544 <<
") ::state_wait_first_DATA() ---->HN is waiting to "
2545 "receive the FIRST DATA"
2546 <<
" packet from the NODE with MAC address: "
2558 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2559 <<
") ::state_wait_first_DATA() ---->HN want to receive all "
2568 <<
")::state_wait_first_DATA()_______________Timeout_"
2569 "within_rx_all_DATA"
2574 <<
")::state_wait_first_DATA()_______________......."
2579 <<
")::state_wait_first_DATA()_______________......."
2584 <<
")::state_wait_first_DATA()_______________......."
2598 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2599 <<
") ::state_wait_other_DATA() ---->HN is waiting the DATA "
2607 <<
")::state_wait_other_DATA()_______________......."
2612 <<
")::state_wait_other_DATA()_______________......."
2617 <<
")::state_wait_other_DATA()_______________......."
2642 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2643 <<
") ::DataTOExpired() ---->HN has received from the NODE "
2650 <<
")::DataTOExpired()_______________________DATA_"
2670 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2671 <<
") ::DataTOExpired() ---->HN has not other nodes to "
2673 <<
" a CBEACON packet can not be transmitted: return in "
2679 <<
")::DataTOExpired()_______________________0_SN_"
2680 "to_polled_and_MAX_number_CBEACON_tx."
2709 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2710 <<
") ::DataTOExpired() ---->HN has not other nodes to "
2712 <<
" a CBEACON packet can be transmitted: transmit a "
2718 <<
")::DataTOExpired()_______________________0_SN_"
2719 "to_polled_and_another_CBEACON_can_be_tx."
2745 << NOW <<
" uwUFetch_NODE (" << addr
2746 <<
") ::DataTOExpired() ---->HN has other nodes to polled."
2751 <<
")::DataTOExpired()_______________________"
2752 "Another_SN_can_be_polled."
2801 <<
")::DATA_rx()_____________________________DATA_"
2804 <<
")_id_pck:" << cbrh->
sn() <<
""
2805 <<
"_It_s_CORRECT." << std::endl;
2808 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2809 <<
") ::DATA_Rx() ---->HN has received the DATA packet"
2811 <<
" from the NODE with"
2827 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2828 <<
") ::DATA_rx() ---->HN has received the LAST DATA "
2835 <<
")::DATA_rx()_____________________________"
2838 <<
")." << std::endl;
2843 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2844 <<
") ::DATA_rx() ---->HN reset DATA timer"
2848 <<
")::DATA_rx()_____________________________"
2849 "Reset_DATA_Timeout."
2863 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2864 <<
") ::DATA_rx() ---->HN has not other nodes to "
2866 <<
" a CBEACON packet can not be transmitted: "
2867 "return in IDLE STATE."
2872 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2873 <<
")::DATA_rx()_____________________________0_SNs_"
2874 "to_polled_and_MAX_CBEACON_is_tx."
2897 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2898 <<
") ::DATA_rx() ---->HN has not other nodes to "
2900 <<
" a CBEACON packet can be transmitted: "
2901 "transmit a CBEACON"
2906 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
2907 <<
")::DATA_rx()_____________________________0_SNs_"
2908 "to_polled_and_another_CBEACON_can_be_tx."
2926 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2927 <<
") ::DATA_rx() ---->HN has other nodes to "
2933 <<
")::DATA_rx()__________________________"
2934 "___Another_SNs_can_be_polled."
2953 << NOW <<
" uwUFetch_NODE (" << addr
2954 <<
") ::DATA_rx() ---->HN wait an another DATA packet,"
2956 <<
", from NODE with MAC "
2966 <<
")::DATA_rx()_____________________________Not_"
2967 "enabled_to_rx_DATA_pcks."
2971 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2972 <<
") DATA_rx() ---->HN(" << addr
2973 <<
") is not enabled to receive the DATA"
2974 <<
" packet: DROP IT." << std::endl;
2991 std::cout << NOW <<
" uwUFetch_NODE (" << addr
2992 <<
") ::state_CBEACON_tx() ---->HN is initializing the "
2994 <<
" which will then transmit to the NODEs in broadcast. "
2999 <<
")::state_CBEACON_tx()____________________"
3000 "Initializing_CBEACON_pck_number_"
3008 Packet *p = Packet::alloc();
3009 hdr_cmn *cmh = hdr_cmn::access(p);
3010 hdr_mac *mach = HDR_MAC(p);
3015 mach->set(MF_CONTROL, addr, MAC_BROADCAST);
3018 mach->macSA() = addr;
3037 <<
")::state_CBEACON_tx()____________________"
3038 "PARAMETERS_of_CBEACON_pck."
3042 << NOW <<
"uwUFetch_HEAD_NODE(" << addr
3043 <<
")::state_CBEACON_tx()____________________Source_address:_"
3044 << mach->macSA() <<
"." << std::endl;
3045 if (mach->macDA() == -1) {
3048 <<
")::state_CBEACON_tx()____________________"
3049 "Destination_address:_BROADCAST."
3054 <<
")::state_CBEACON_tx()____________________"
3055 "Destination_address:_"
3056 << mach->macDA() <<
"." << std::endl;
3060 <<
")::state_CBEACON_tx()____________________MIN_"
3061 "backoff_time_PROBE_pck:_"
3065 <<
")::state_CBEACON_tx()____________________MAX_"
3066 "backoff_time_PROBE_pck:_"
3070 <<
")::state_CBEACON_tx()____________________Size_of_"
3072 << cmh->size() <<
"[byte]." << std::endl;
3089 std::cout << NOW <<
" uwUFetch_NODE (" << addr
3090 <<
") ::CBEACON_tx() ---->HN is transmitting a CBEACON packet"
3091 <<
" to the NODEs in broadcast." << std::endl;
3131 std::cout << NOW <<
" uwUFetch_NODE (" << addr
3132 <<
") choiceBackOffTimer() ---->HN is choosing the "
3138 std::cout << NOW <<
" uwUFetch_NODE(" << addr
3139 <<
") ::choiceBackOffTimer() ---->Back-off time choice "
3141 << 0.833 * random <<
"[s]." << std::endl;
3142 return (0.833 * random);
3147 std::cout << NOW <<
" uwUFetch_NODE (" << addr
3148 <<
") choiceBackOffTimer() ---->HN is choosing the "
3154 std::cout << NOW <<
" uwUFetch_NODE(" << addr
3155 <<
") ::choiceBackOffTimer() ---->Back-off time choice "
3157 << 0.833 * random <<
"[s]." << std::endl;
3158 return (0.833 * random);
3168 << NOW <<
" uwUFetch_NODE (" << addr
3169 <<
") ::getDataTimerValue() ---->HN is computing DATA timeout."
3175 int pck_tx_number = 0;
3183 double data_timeout_val = 0;
3186 return data_timeout_val;
3197 std::cout << NOW <<
" uwUFetch_NODE (" << addr
3198 <<
") ::recvFromUpperLayers() ---->HN is queuing a DATA "
3200 <<
" generated by the APPLICATION layer" << std::endl;
3204 <<
")::recvFromUpperLayer()__________________DATA_"
3205 "pck_from_upper_layer:id_pck_"
3206 << cbrh->
sn() <<
"_STORE_It." << std::endl;
3209 std::cout << NOW <<
" uwUFetch_NODE (" << addr
3210 <<
") ::recvFromUpperLayers()--->HN dropped DATA packet "
3212 <<
" its buffer is full" << std::endl;
3215 <<
")::recvFromUpperLayer()__________________DATA_"
3216 "pck_from_upper_layer:id_pck_"
3217 << cbrh->
sn() <<
"_BUFFER_FULL:_drop_It."
3226 Packet *simple_pck = Packet::alloc();
3229 hdr_cmn *cmh = HDR_CMN(simple_pck);
3231 hdr_mac *mach = HDR_MAC(simple_pck);
3233 mach->macSA() = addr;
3235 Tpoll = Mac2PhyTxDuration(simple_pck);
3238 hdr_cmn *cmh = HDR_CMN(simple_pck);
3239 hdr_mac *mach = HDR_MAC(simple_pck);
3242 mach->macSA() = addr;
3244 Tdata_HN = Mac2PhyTxDuration(simple_pck);
3247 Packet::free(simple_pck);
3270 std::cout << NOW <<
" uwUFetch_NODE (" << addr
3271 <<
") ::updateListProbbedNode() ---->HN has finished to "
3272 "receive DATA packet from the NODE with"
3274 <<
", so remove the NODE from the list." << std::endl;
3288 if ((module->debug_))
3289 std::cout << NOW <<
" uwUFetch_NODE (" <<
module->addr
3290 << ") ::uwUFetch_BEACON_timer::expire() ---->BEACON timeout "
3295 module->BeaconTxTOExpire();
3301 if ((module->debug_))
3302 std::cout << NOW <<
" uwUFetch_NODE (" <<
module->addr
3303 << ")::uwUFetch_PROBE_timer::expire() ---->PROBE timeout "
3308 module->ProbeTOExpired();
3314 if ((module->debug_))
3316 << NOW <<
" uwUFetch_NODE (" <<
module->addr
3317 << ") ::uwUFetch_DATA_timer::expire() ---->DATA timeout expired"
3321 module->DataTOExpired();
3327 if ((module->debug_))
3328 std::cout << NOW <<
" uwUFetch_NODE (" <<
module->addr
3329 << ")::uwUFetch_CTS_timer::expire() ---->CTS timeout expired"
3333 module->CtsTOExpired();
virtual void expire(Event *e)
Method called when the timer expire.
virtual void expire(Event *e)
Method called when the timer expire.
virtual void expire(Event *e)
Method called when the timer expire.
uwUFetch_NODE *UWUFETCH_TIMER_STATUS timer_status
< Pointer to an object of type uwUFetch_NODE
virtual void schedule(double val)
schedule a timer
virtual void expire(Event *e)
Method called when the timer expire.
std::queue< double > Q_probbed_backoff_time
Queue that stored the backoff time choice by the single nodes before to transmit the PROBE packet to ...
double data_timeout
Interval time in which the HN want to receive all DATA packets from the node that have polled.
double tx_POLL_finish_HN_time
Indicates when HN finished the transmission of POLL packet to a specific SN.
void incrTotalDataPckRx_by_HN()
Increase total number of DATA packets correctly or not received by the HN during an entire simulation...
virtual void state_BEACON_tx()
HN initialize the BEACON packet that will be forwarded in broadcast at all SNs of the network.
UWUFETCH_NODE_STATUS_CHANGE last_reason
Last reason because the SN or HN change its state.
virtual void state_DATA_HN_finish_tx()
HN has finished to transmit the sequence of DATA packets promises to the AUV with the exchange of pre...
double T_max_bck_DATA
Upper bound time interval from which the HN choice its backoff timer before to transmit a DATA packet...
double T_MIN_BACKOFF_PROBE
Lower bound timer interval of back-off value used by the SN to choice its back-off time before to tra...
int n_BEACON_pck_tx_by_HN
Number of BEACON packet transmitted by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON of...
double bck_before_tx_RTS
Time value choice by the HN and used for transmit a RTS packet to the AUV.
virtual void state_DATA_HN_first_tx_without()
HN initialize the FIRST DATA packet that will be forwarded to the AUV node.
virtual void DataBeforeTxTOExpired_HN()
Backoff timeout is expired.
bool CTSrx
true HN has received a CTS packet after the transmission of RTS
virtual void CBEACON_tx()
HN transmit the BEACON packet.
virtual bool burstDATA()
Indicate whether the transmission of DATA packets to the AUV take place with or without burst data.
double T_GUARD
Guard interval used for successive transmission of DATA packets.
virtual void state_DATA_HN_finish_tx_without()
HN has finished to transmit the sequence of DATA packets to the AUV.
virtual void Phy2MacEndTx_HN(const Packet *p)
Handle the end-of-PHY-transmission event for HEAD NODE.
Packet * curr_RTS_HN_pck_tx
Pointer to the RTS packet that is being transmitted by HN.
int MAX_POLLED_NODE
Maximum number of PROBE packets that the HN can receive from the SN after the transmission of a BEACO...
virtual void Phy2MacStartRx_HN(const Packet *p)
Handle the detected-start-of-PHY-reception event for HEAD NODE.
bool txDATAEnabledHN
true if HN is enabled to transmit a DATA packet to the AUV
virtual double choiceBackOffTimer_HN()
Choose the backoff timeout used by HN before to transmit a RTS packet.
int getDataPckRx_by_HN()
Number of DATA packets transmitted by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON of ...
void incrProbePckRx_HN()
Increase number of PROBE packets received by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEA...
virtual void stateIdle_HN()
Idle state for HN.
double tx_DATA_finish_HN_time
Indicates when HN finished the transmission of DATA packet to the AUV.
double T_PROBE
Interval time in which HN is enabled to received PROBE packets from SNs after the transmission of TRI...
@ UWUFETCH_TIMER_STATUS_EXPIRED
virtual void BeaconTxTOExpire()
BEACON timeout is expired.
virtual void state_wait_CTS()
HN start to wait a CTS packet for a pre-established time interval.
double tx_CBEACON_start_HN_time
Indicates when HN started the transmission of CBEACON packet to the SNs.
double tx_POLL_start_HN_time
Indicates when HN started the transmission of POLL packet to a specific SN.
int MAX_ALLOWED_CBEACON_TX
bool rxCTSEnabled
true if HN is enabled to receive a CTS packet from the AUV
Packet * curr_CBEACON_HN_pck_tx
Pointer to the CBEACON packet that is being transmitted by HN.
virtual void state_DATA_HN_first_tx()
HN initialize the FIRST DATA packet that will be forwarded to the AUV node.
virtual void DATA_rx()
HN has received a BEACON packet from SN.
virtual void BCKTOExpired_HN()
Backoff timeout is expired.
virtual void computeTxTime_HN(UWUFETCH_NODE_PACKET_TYPE tp)
Compute the transmission time for the packets transmitted by the HNs.
virtual void printStateInfo(double delay=0)
Prints a file with every state change for debug purposes.
virtual void ProbeTOExpired()
Probe timeout is expired.
std::ofstream out_file_logging
Variable that handle the file in which the protocol write the statistics.
virtual void Phy2MacEndRx_HN(Packet *p)
Handle the end-of-PHY-reception event for HEAD NODE.
double tx_RTS_finish_HN_time
Indicates when HN finished the transmission of RTS packet to the AUV.
virtual void Phy2MacEndRx_HN_without(Packet *p)
Handle the end-of-PHY-reception event for HEAD NODE in the case that the communication don't use RTS-...
double rx_TRIGGER_start_HN_time
Indicates when HN started the reception of TRIGGER packet from the AUV.
int n_CBEACON_pck_tx_by_HN
Number of CBEACON packet transmitted by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON o...
virtual void state_wait_other_PROBE()
HN start to wait the second or successive PROBE packet from some SNs.
virtual void BCKTOExpired_HN_without()
Backoff timeout is expired.
double TIME_BETWEEN_2_TX_DATA_HN_AUV
Interval time used by HN before to transmit the next DATA packet to the AUV.
virtual void updateListProbbedNode()
Update the list of the SN from which HN has received the PROBE packets.
virtual void DATA_HN_tx_without()
HN transmit a DATA packet to the AUV.
double rx_DATA_finish_HN_time
Indicates when HN finished the reception of DATA packet from the SNs.
double T_max_bck_RTS
Upper bound interval time from which the HN choice his backoff timer before to transmit a RTS packet ...
void incrPollPckTx_by_HN()
Increase the number of POLL packets transmitted by the HN during a single cycle BEACON-PROBE-POLL-DAT...
double T_min_bck_RTS
Lower bound interval time from which the HN choice its backoff timer before to transmit a RTS packet ...
void incrTotalTriggerPckRx_HN()
Increase the total number of TRIGGER packets correctly or not received by the HN during an entire sim...
int debugMio_
Used if we want to create the logging file.
void incrTotalDataPckRx_corrupted_by_HN()
Increase total number of corrupted DATA packets received by the HN during an entire simulation.
virtual void Mac2PhyStartTx_HN(Packet *p)
This method must be called by the HN-MAC to instruct the PHY to start the transmission of a packet.
bool txRTSEnabled
true if HN is enabled to transmit a RTS packet to the AUV
virtual double getDataTimerValue()
Compute the interval time within HN want to receive all DATA packets from a specific SN.
void incrBeaconPckTx_by_HN()
Increase the number of BEACON packet transmitted by the HN during a single cycle BEACON-PROBE-POLL-DA...
bool sectionCBeacon
true HN has started the transmission of RTS packet when It was in the CBEACON section.
int number_data_pck_HN_rx_exact
Exact number of DATA packets that the HN want to receive from the SN that have polled.
virtual void refreshReason(UWUFETCH_NODE_STATUS_CHANGE reason)
Refresh the reason for the changing of the state.
Packet * curr_TRIGGER_HN_pck_rx
Pointer to the TRIGGER packet that is being received by HN.
int MODE_COMM_HN_AUV
Indicate the type of communication between HN and AUV, 0 = communication with RTS-CTS,...
double rx_PROBE_start_HN_time
Indicates when HN started the reception of PROBE packet from the SNs.
bool txBEACONEnabled
true if HN is enabled to transmit a BEACON packet to the SN
int mac_addr_AUV_in_trigger
AUV-MAC address contained in the TRIGGER packet received by the HN.
Packet * curr_BEACON_HN_pck_tx
Pointer to the BEACON packet that is being transmitted by HN.
void incrDataPckTx_by_HN()
Increase the number of DATA packets transmitted by the HN during a single cycle TRIGGER-RTS-CTS-DATA ...
bool rxPROBEEnabled
true if HN is enabled to receive a PROBE packet from the SN
std::queue< Packet * > Q_data_HN
Queue of DATA packets stored by the HNs and received from SN.
virtual void state_DATA_HN_tx()
HN initialize the second and successive DATA packets that will be forwarded to the AUV node.
virtual void BEACON_tx()
HN transmit the BEACON packet.
Packet * curr_DATA_NODE_pck_tx_HN
Pointer to the DATA packet that is being transmitted by HN.
int MAXIMUM_BUFFER_DATA_PCK_NODE
Maximum number of DATA packets that the SN can store in Its queue.
double T_MAX_BACKOFF_PROBE
Upper bound timer interval of back-off value used by the SN to choice its back-off time before to tra...
void incrTotalPollPckTx_by_HN()
Increase the total number of POLL packets transmitted by the HN during an entire simulation.
double tx_BEACON_start_HN_time
Indicates when HN started the transmission of BEACON packet to the SNs.
double rx_CTS_start_HN_time
Indicates when HN started the reception of CTS packet from the AUV.
void incrDataPckRx_by_HN()
Increase the number of DATA packets transmitted by the HN during a single cycle BEACON-PROBE-POLL-DAT...
bool txPOLLEnabled
true if HN is enabled to transmit a POLL packet to the SN
virtual void state_wait_PROBE()
HN start to wait the FIRST PROBE packet from some SNs.
int pck_number_id
Unique identifier of the DATA packet received.
virtual void Mac2PhyStartTx(Packet *p)
This method must be called by the SN-MAC to instruct the PHY to start the transmission of a packet.
std::queue< int > Q_probbed_mac_HN
Queue that store the MAC address of the SN from which the HN has received correctly the PROBE packets...
bool rxTRIGGEREnabled
true if HN is enabled to receive a TRIGGER packet from the AUV
void incrTotalBeaconPckTx_by_HN()
Increase the total number of BEACON packets transmitted by the HN during an entire simulation.
double rx_DATA_start_HN_time
Indicates when HN started the reception of DATA packet from the SNs.
virtual void state_DATA_HN_tx_without()
HN initialize the second and successive DATA packets that will be forwarded to the AUV node.
double tx_RTS_start_HN_time
Indicates when HN started the transmission of RTS packet to the AUV.
virtual double getRTT()
Compute the round trip time.
virtual void state_wait_first_DATA()
HN start to wait the FIRST DATA packet from SN.
void incrTotalTriggerPckRx_corrupted_HN()
Increase the total number of corrupted TRIGGER packets received by the HN during an entire simulation...
void incrRtsPckTx_by_HN()
Increase the number of RTS packets transmitted by the HN during a single cycle TRIGGER-RTS-CTS-DATA o...
int n_POLL_pck_tx_by_HN
Number of POLL packet transmitted by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON of t...
void incrTotalDataPckTx_by_HN()
Increase the total number of DATA packets transmitted by the HN during an entire simulation.
virtual void CTS_rx()
HN has received a CTS packet from AUV.
int getDataPckTx_by_HN()
Number of DATA packets transmitted by the HN during a single cycle TRIGGER-RTS-CTS-DATA of the simula...
double T_min_bck_DATA
Lower bound time interval from which the HN choice its backoff timer before to transmit a DATA packet...
uwUFetch_DATA_timer DATA_timer
Schedule the DATA timeout timer.
virtual void DataTOExpired()
DATA timeout is expired.
void incrTotalCtsPckRx_HN()
Increase the total number of CTS packets correctly or not received by the HN during an entire simulat...
virtual void DATA_HN_tx()
HN transmit a DATA packet to the AUV.
int max_pck_HN_can_tx
Maximum number of DATA packets that AUV want to receive from HN.
double Tdata_HN
Time needed to transmit a DATA packet.
virtual void state_CBEACON_tx()
HN initialize the CBEACON packet that will be forwarded in broadcast at all SNs of the network.
int n_PROBE_pck_rx_by_HN
Number of PROBE packet received by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON of the...
void incrTriggerPckRx_HN()
Increase the number of TRIGGER packets received by the HN during a single cycle TRIGGER-RTS-CTS-DATA ...
virtual void PROBE_rx()
HN has received a PROBE packet from SN.
uwUFetch_BackOffTimer BCK_timer_rts
Schedule the backoff timeout timer.
uwUFetch_DATA_BEFORE_TX_timer DATA_BEFORE_TX_timer
void incrCBeaconPckTx_by_HN()
Increase the number of CBEACON packets transmitted by the HN during a single cycle BEACON-PROBE-POLL-...
int n_CTS_pck_rx_by_HN
Number of CTS packet received by the HN during a single cycle TRIGGER-RTS-CTS-DATA of the simulation.
virtual void state_wait_other_DATA()
HN start to wait the second or successive DATA packet from SN.
virtual bool typeCommunication()
Indicate if the communiation between HN and AUV take place with or without RTS and CTS packets.
virtual void recvFromUpperLayers_HN(Packet *p)
Handle a packet coming from upper layers of HN.
int n_TRIGGER_pck_rx_by_HN
Number of TRIGGER packet received by the HN during a single cycle TRIGGER-RTS-CTS-DATA of the simulat...
void incrTotalProbePckRx_HN()
Increase total number of PROBE packets correctly or not received by the HN during an entire simulatio...
virtual void TRIGGER_rx_without()
HN has received a TRIGGER packet from AUV.
int MAX_PAYLOAD
Maximum size of payload DATA packet.
double tx_BEACON_finish_HN_time
Indicates when HN finished the transmission of BEACON packet to the SNs.
int mac_addr_NODE_polled
SN-MAC address of the node that the HN is going to be poll and from which It want to receive DATA pac...
uwUFetch_BEACON_timer BeaconBeforeTx_timer
Schedule the BEACON timeout timer.
@ UWUFETCH_NODE_PACKET_TYPE_DATA
@ UWUFETCH_NODE_PACKET_TYPE_POLL
int MODE_BURST_DATA
Indicate if it's used or not the burst data.
virtual void POLL_tx()
HN transmit POLL packet to a specific SN of th network.
void incrTotalDataPckTx_by_NODE()
Increase the total number of DATA packets transmitted by SN during an entire duration of simulation.
int n_DATA_pck_rx_by_HN
Number of DATA packet received by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON of the ...
virtual void TRIGGER_rx()
HN has received a TRIGGER packet from AUV.
bool txRTSbeforeCBEACON
true HN block the transmission of CBEACON because It try to communicate with the AUV.
double tx_DATA_start_HN_time
Indicates when HN started the transmission of DATA packet to the AUV.
Packet * curr_PROBE_HN_pck_rx
Pointer to the PROBE packet that is being received by HN.
uwUFetch_PROBE_timer PROBE_timer
Schedule the PROBE timeout timer.
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_MAX_ALLOWED_PCK_RX_0_NODE_TO_POLL_NO_OTHER_CBEACON
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_PCK_TX
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_MAX_ALLOWED_PCK_RX_0_NODE_TO_POLL_YES_OTHER_CBEACON
@ UWUFETCH_NODE_STATUS_CHANGE_TRIGGER_RX
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_RX
@ UWUFETCH_NODE_STATUS_CHANGE_CBEACON_ALLOWED_TX_0_PROBE_RX
@ UWUFETCH_NODE_STATUS_CHANGE_CBEACON_TX
@ UWUFETCH_NODE_STATUS_CHANGE_HN_RX_TRIGGER_FROM_AUV_CORRUPTED
@ UWUFETCH_NODE_STATUS_CHANGE_RTS_TX
@ UWUFETCH_NODE_STATUS_CHANGE_PROBE_RX
@ UWUFETCH_NODE_STATUS_CHANGE_LAST_DATA_PCK_RX
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_TO_EXPIRED
@ UWUFETCH_NODE_STATUS_CHANGE_CBEACON_MAX_ALLOWED_TX_0_PROBE_RX
@ UWUFETCH_NODE_STATUS_CHANGE_POLL_TX
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_MAX_ALLOWED_PCK_RX_YES_NODE_TO_POLL
@ UWUFETCH_NODE_STATUS_CHANGE_CTS_RX
@ UWUFETCH_NODE_STATUS_CHANGE_BEACON_TO_EXPIRED
@ UWUFETCH_NODE_STATUS_CHANGE_TO_WAIT_CTS_EXPIRED
@ UWUFETCH_NODE_STATUS_CHANGE_TO_EXPIRED_AT_LEAST_1_PROBE_RX
@ UWUFETCH_NODE_STATUS_CHANGE_TRIGGER_RX_BUT_HN_NO_DATA_TO_TX
@ UWFETCH_NODE_STATUS_CHANGE_PACKET_ERROR
@ UWUFETCH_NODE_STATUS_CHANGE_BEACON_TX
@ UWUFETCH_NODE_STATUS_CHANGE_HN_FINISH_TX_DATA_PCK_TO_AUV_RETURN_CBEACON_TX
@ UWUFETCH_NODE_STATUS_CHANGE_HN_TX_ALL_DATA_TO_AUV
@ UWUFETCH_NODE_STATUS_CHANGE_MAX_PROBE_RX_PROBE_TO_NOT_EXPIRED
double Tpoll
Time needed to transmit a POLL packet.
int getProbePckRx_HN()
Number of PROBE packets received by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON of th...
double rx_TRIGGER_finish_HN_time
Indicates when HN finished the reception of TRIGGER packet from the AUV.
int MAX_PCK_HN_WANT_RX_FROM_NODE
bool txCBEACONEnabled
true if HN is enabled to transmit a CBEACON packet to the SN
double RTT
Round trip time value.
Packet * curr_POLL_HN_pck_tx
Pointer to the POLL packet that is being transmitted by HN.
int mac_addr_AUV_in_CTS
AUV-MAC address contained int the CTS packet received by HN.
void incrTotalProbePckRx_corrupted_HN()
Increase the total number of corrupted PROBE packets received by the HN during an entire simulation.
virtual void state_POLL_tx()
HN initialize the POLL packet that will be forwarded to a specific SN of the network.
Packet * curr_DATA_HN_pck_tx
Pointer to the DATA packet that is being transmitted by HN to the AUV.
double T_START_PROCEDURE_HN_NODE
Time within HN is enabled to received a TRIGGER packet from AUV.
std::queue< int > Q_data_source_SN
Queue that contain the MAC address from which the HN has received the DATA packet.
std::queue< Packet * > Q_data
Queue of DATA packets stored by the SN.
virtual void CtsTOExpired()
CTS timeout is expired.
virtual void state_RTS_tx()
HN initialize the RTS packet that will be forwarded to the AUV.
int max_data_HN_can_tx
Maximum number of DATA packets that the HN must transmit to the AUV.
int mac_addr_NODE_in_data
Mac address of the node from which the HN has received a DATA packet.
double Tdata_HN_pck
Time to transmit a DATA packet by the HN.
int n_DATA_pck_tx_by_HN
Number of DATA packet transmitted by the HN during a single cycle TRIGGER-RTS-CTS-DATA of the simulat...
void incrTotalRtsPckTx_by_HN()
Increase the total number of RTS packets transmitted by the HN during an entire simulation.
uwUFetch_CTS_timer CTS_timer
Schedule the CTS timeout timer.
double rx_CTS_finish_HN_time
Indicates when HN finished the reception of CTS packet from the SNs.
std::queue< int > Q_probbed_n_pcks_NODE_want_tx_HN
Queue that store the number of DATA packets that the single SN want to tx to the HN.
virtual void RTS_tx()
HN transmit a RTS packet to the AUV.
double rx_PROBE_finish_HN_time
Indicates when HN finished the reception of PROBE packet from the SNs.
Packet * curr_DATA_HN_pck_rx
Pointer to the DATA packet that is being received by HN from SN.
double tx_CBEACON_finish_HN_time
Indicates when HN finished the transmission of CBEACON packet to the SNs.
int n_RTS_pck_tx_by_HN
Number of RTS packet transmitted by the HN during a single cycle TRIGGER-RTS-CTS-DATA of the simulati...
void incrTotalCtsPckRx_corrupted_HN()
Increase the total number of corrupted CTS packets received by the HN during an entire simulation.
Packet * curr_CTS_HN_pck_rx
Pointer to the CTS packet that is being received by HN.
void incrTotalCBeaconPckTx_by_HN()
Increase the total number of CBEACON packets transmitted by the HN during an entire simulation.
int getCBeaconPckTx_by_HN()
Number of CBEACON packets transmitted by the HN during a single cycle BEACON-PROBE-POLL-DATA-CBEACON ...
bool rxDATAEnabled
true if HN is enabled to receive a DATA packet from teh SN
bool print_transitions
true if the writing of state transitions in the file is enabled.
virtual void refreshState(UWUFETCH_NODE_STATUS state)
@ UWUFETCH_NODE_STATUS_PROBE_RX
@ UWUFETCH_NODE_STATUS_POLL_TX
@ UWUFETCH_NODE_STATUS_WAIT_CTS_PACKET
@ UWUFETCH_NODE_STATUS_TRIGGER_RECEIVE
@ UWUFETCH_NODE_STATUS_CTS_RECEIVE
@ UWUFETCH_NODE_STATUS_WAIT_DATA_NODE
@ UWUFETCH_NODE_STATUS_WAIT_PROBE_PACKET
@ UWUFETCH_NODE_STATUS_DATA_RX
@ UWUFETCH_NODE_STATUS_TRANSMIT_BEACON
@ UWUFETCH_NODE_STATUS_IDLE
@ UWUFETCH_NODE_STATUS_RTS_TRANSMIT
void incrCtsPckRx_HN()
Increase the number of CTS packets received by the HN during a single cycle TRIGGER-RTS-CTS-DATA of t...
Content header of BEACON packet.
int & t_max_bc()
Reference to t_max_bc_ variable.
int & num_Max_CBEACON_tx_by_HN()
Reference to num_Max_CBEACON_tx_by_HN_ variable.
int & t_min_bc()
Reference to t_min_bc_ variable.
Content header of CBEACON packet.
int & t_max_bc()
Reference to t_max_bc_ variable.
int & t_min_bc()
Reference to t_min_bc_ variable.
Content header of CTS packet.
int & num_DATA_pcks_MAX_rx()
Reference to the num_DATA_pcks_MAX_rx_ variable.
Content header of POLL packet.
int & mac_addr_Node_polled()
Reference to mac_addr_Node_polled_ variable.
int & num_DATA_pcks_MAX_rx()
Reference to num_DATA_pcks_MAX_rx variable.
Content header of PROBE packet.
int & n_DATA_pcks_Node_tx()
Reference to n_DATA_pcks_Node_tx_ variable.
int & backoff_time_PROBE()
Reference to backoff_time_PROBE_ variable.
Content header of RTS packet.
int & backoff_time_RTS()
Reference to the backoff_Time_RTS_ variable.
int & num_DATA_pcks()
Reference to the num_Data_pcks_ variable.
Content header of TRIGGER packet.
int & t_min()
Reference to the t_min variable.
int & t_max()
Reference to the t_max variable.
int & max_pck_want_rx()
Reference to the max_pck_want_rx variable.
hdr_uwcbr describes UWCBR packets.
uint16_t & sn()
Reference to the sn_ variable.
Declaration of uwUFetch_NODE class.
packet_t PT_POLL_UFETCH
POLL packet type for UFetch protocol.
#define UWFETCH_NODE_DROP_REASON_ERROR
Packet dropped: packet is corrupted.
#define UWUFETCH_NODE_DROP_REASON_BUFFER_FULL
Packet dropped: buffer of the node is completely full.
packet_t PT_CBEACON_UFETCH
CBEACON packet type for UFetch protocol.
packet_t PT_CTS_UFETCH
CTS packet type for UFetch protocol.
packet_t PT_TRIGGER_UFETCH
TRIGGER packet type for UFetch protocol.
packet_t PT_BEACON_UFETCH
BEACON packet type for UFetch protocol.
#define UWUFETCH_NODE_DROP_CAN_NOT_RX_THIS_PCK
Packet dropped: node can not receive this type of node.
packet_t PT_PROBE_UFETCH
PROBE packet type for UFetch protocol.
packet_t PT_RTS_UFETCH
RTS packet type for UFetch protocol.
#define UWUFETCH_NODE_DROP_REASON_NOT_ENABLE
Packet dropped: node is not enabled to receive this type of \ packet.
Common structures and variables in the protocol.
#define HDR_BEACON_UFETCH(p)
alias defined to access the BEACON HEADER
#define HDR_POLL_UFETCH(p)
alias defined to access the POLL \ HEADER
#define HDR_CTS_UFETCH(p)
alias defined to access the CTS HEADER
#define HDR_CBEACON_UFETCH(p)
alias defined to access the CBEACON HEADER
#define HDR_TRIGGER_UFETCH(p)
alias defined to access the TRIGGER HEADER
#define HDR_PROBE_UFETCH(p)
alias defined to access the PROBE HEADER
#define HDR_RTS_UFETCH(p)
alias defined to access the RTS HEADER
Provides the UWCBR packets header description and the definition of the class UWCBR.