diff --git a/regression-tests/27-tsch/01-cooja-flush-nbr-queue.csc b/regression-tests/27-tsch/01-cooja-flush-nbr-queue.csc
new file mode 100644
index 000000000..948822670
--- /dev/null
+++ b/regression-tests/27-tsch/01-cooja-flush-nbr-queue.csc
@@ -0,0 +1,147 @@
+
+
+ [APPS_DIR]/mrm
+ [APPS_DIR]/mspsim
+ [APPS_DIR]/avrora
+ [APPS_DIR]/serial_socket
+ [APPS_DIR]/collect-view
+ [APPS_DIR]/powertracker
+
+ My simulation
+ 123456
+ 1000000
+
+ org.contikios.cooja.radiomediums.UDGM
+ 50.0
+ 100.0
+ 1.0
+ 1.0
+
+
+ 40000
+
+
+ org.contikios.cooja.contikimote.ContikiMoteType
+ mtype476
+ Cooja Mote Type #1
+
+ make test-flush-nbr-queue.cooja TARGET=cooja
+ org.contikios.cooja.interfaces.Position
+ org.contikios.cooja.interfaces.Battery
+ org.contikios.cooja.contikimote.interfaces.ContikiVib
+ org.contikios.cooja.contikimote.interfaces.ContikiMoteID
+ org.contikios.cooja.contikimote.interfaces.ContikiRS232
+ org.contikios.cooja.contikimote.interfaces.ContikiBeeper
+ org.contikios.cooja.interfaces.RimeAddress
+ org.contikios.cooja.contikimote.interfaces.ContikiIPAddress
+ org.contikios.cooja.contikimote.interfaces.ContikiRadio
+ org.contikios.cooja.contikimote.interfaces.ContikiButton
+ org.contikios.cooja.contikimote.interfaces.ContikiPIR
+ org.contikios.cooja.contikimote.interfaces.ContikiClock
+ org.contikios.cooja.contikimote.interfaces.ContikiLED
+ org.contikios.cooja.contikimote.interfaces.ContikiCFS
+ org.contikios.cooja.contikimote.interfaces.ContikiEEPROM
+ org.contikios.cooja.interfaces.Mote2MoteRelations
+ org.contikios.cooja.interfaces.MoteAttributes
+ false
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 38.79981729133275
+ 97.05367953429746
+ 0.0
+
+
+ org.contikios.cooja.contikimote.interfaces.ContikiMoteID
+ 1
+
+
+ org.contikios.cooja.contikimote.interfaces.ContikiRadio
+ 250.0
+
+
+ org.contikios.cooja.contikimote.interfaces.ContikiEEPROM
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+ mtype476
+
+
+
+ org.contikios.cooja.plugins.SimControl
+ 280
+ 4
+ 160
+ 400
+ 0
+
+
+ org.contikios.cooja.plugins.Visualizer
+
+ true
+ org.contikios.cooja.plugins.skins.IDVisualizerSkin
+ org.contikios.cooja.plugins.skins.GridVisualizerSkin
+ org.contikios.cooja.plugins.skins.TrafficVisualizerSkin
+ org.contikios.cooja.plugins.skins.UDGMVisualizerSkin
+ 0.9090909090909091 0.0 0.0 0.9090909090909091 158.72743882606113 84.76938224154777
+
+ 400
+ 3
+ 400
+ 1
+ 1
+
+
+ org.contikios.cooja.plugins.LogListener
+
+
+
+
+
+ 1320
+ 2
+ 240
+ 400
+ 160
+
+
+ org.contikios.cooja.plugins.TimeLine
+
+ 0
+
+
+
+ 500.0
+
+ 1720
+ 1
+ 166
+ 0
+ 957
+
+
+ org.contikios.cooja.plugins.Notes
+
+ Enter notes here
+ true
+
+ 1040
+ 0
+ 160
+ 680
+ 0
+
+
+ org.contikios.cooja.plugins.ScriptRunner
+
+ [CONTIKI_DIR]/regression-tests/27-tsch/js/unit-test.js
+ true
+
+ 495
+ 0
+ 525
+ 663
+ 105
+
+
+
diff --git a/regression-tests/27-tsch/Makefile b/regression-tests/27-tsch/Makefile
new file mode 100644
index 000000000..272bc7da1
--- /dev/null
+++ b/regression-tests/27-tsch/Makefile
@@ -0,0 +1 @@
+include ../Makefile.simulation-test
diff --git a/regression-tests/27-tsch/code/Makefile b/regression-tests/27-tsch/code/Makefile
new file mode 100644
index 000000000..5c3708798
--- /dev/null
+++ b/regression-tests/27-tsch/code/Makefile
@@ -0,0 +1,11 @@
+all:
+
+CFLAGS += -D PROJECT_CONF_H=\"project-conf.h\"
+APPS += unit-test
+MODULES += core/net/mac/tsch core/net/mac/tsch/sixtop
+
+PROJECT_SOURCEFILES += common.c
+
+CONTIKI = ../../..
+CONTIKI_WITH_IPV6 = 1
+include $(CONTIKI)/Makefile.include
diff --git a/regression-tests/27-tsch/code/common.c b/regression-tests/27-tsch/code/common.c
new file mode 100644
index 000000000..51fd1fbfb
--- /dev/null
+++ b/regression-tests/27-tsch/code/common.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2017, Yasuyuki Tanaka
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include
+#include
+
+#include "unit-test.h"
+#include "common.h"
+
+#include "lib/simEnvChange.h"
+#include "sys/cooja_mt.h"
+
+void
+test_print_report(const unit_test_t *utp)
+{
+ printf("=check-me= ");
+ if(utp->result == unit_test_failure) {
+ printf("FAILED - %s: exit at L%u\n", utp->descr, utp->exit_line);
+ } else {
+ printf("SUCCEEDED - %s\n", utp->descr);
+ }
+
+ /* give up the CPU so that the mote can output messages in the serial buffer */
+ simProcessRunValue = 1;
+ cooja_mt_yield();
+}
diff --git a/regression-tests/27-tsch/code/common.h b/regression-tests/27-tsch/code/common.h
new file mode 100644
index 000000000..5b7f1f645
--- /dev/null
+++ b/regression-tests/27-tsch/code/common.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2017, Yasuyuki Tanaka
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _COMMON_H
+#define _COMMON_H
+
+#include "unit-test.h"
+
+void test_print_report(const unit_test_t *utp);
+
+#endif /* !_COMMON_H */
diff --git a/regression-tests/27-tsch/code/project-conf.h b/regression-tests/27-tsch/code/project-conf.h
new file mode 100644
index 000000000..e15264432
--- /dev/null
+++ b/regression-tests/27-tsch/code/project-conf.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2017, Yasuyuki Tanaka
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PROJECT_CONF_H_
+#define _PROJECT_CONF_H_
+
+#define UNIT_TEST_PRINT_FUNCTION test_print_report
+
+/* Set the minimum value of QUEUEBUF_CONF_NUM for the flush_nbr_queue test */
+#undef QUEUEBUF_CONF_NUM
+#define QUEUEBUF_CONF_NUM 1
+
+#undef TSCH_LOG_CONF_LEVEL
+#define TSCH_LOG_CONF_LEVEL 2
+
+#undef TSCH_CONF_AUTOSTART
+#define TSCH_CONF_AUTOSTART 1
+
+#undef NETSTACK_CONF_MAC
+#define NETSTACK_CONF_MAC tschmac_driver
+
+#undef NETSTACK_CONF_RDC
+#define NETSTACK_CONF_RDC nordc_driver
+
+#undef NETSTACK_CONF_FRAMER
+#define NETSTACK_CONF_FRAMER framer_802154
+
+#undef FRAME802154_CONF_VERSION
+#define FRAME802154_CONF_VERSION FRAME802154_IEEE802154E_2012
+
+#if CONTIKI_TARGET_COOJA
+#define COOJA_CONF_SIMULATE_TURNAROUND 0
+#endif /* CONTIKI_TARGET_COOJA */
+
+#endif /* __PROJECT_CONF_H__ */
diff --git a/regression-tests/27-tsch/code/test-flush-nbr-queue.c b/regression-tests/27-tsch/code/test-flush-nbr-queue.c
new file mode 100644
index 000000000..6af9c156c
--- /dev/null
+++ b/regression-tests/27-tsch/code/test-flush-nbr-queue.c
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2017, Yasuyuki Tanaka
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include
+
+#include "contiki.h"
+#include "contiki-net.h"
+#include "contiki-lib.h"
+#include "lib/assert.h"
+
+#include "net/linkaddr.h"
+#include "net/mac/tsch/tsch.h"
+#include "net/mac/tsch/tsch-queue.h"
+
+#include "unit-test.h"
+#include "common.h"
+
+PROCESS(test_process, "tsch_queue_flush_nbr_queue() test");
+AUTOSTART_PROCESSES(&test_process);
+
+static linkaddr_t test_nbr_addr = {{ 0x01 }};
+#define TEST_PEER_ADDR &test_nbr_addr
+
+UNIT_TEST_REGISTER(test,
+ "flush_nbr_queue() should delete all the packet in the queue");
+UNIT_TEST(test)
+{
+ struct tsch_packet *packet;
+ struct tsch_neighbor *nbr;
+
+ UNIT_TEST_BEGIN();
+
+ packet = tsch_queue_add_packet(TEST_PEER_ADDR, NULL, NULL);
+ UNIT_TEST_ASSERT(packet != NULL);
+
+ nbr = tsch_queue_get_nbr(TEST_PEER_ADDR);
+ UNIT_TEST_ASSERT(nbr != NULL);
+
+ /*
+ * QUEUEBUF_CONF_NUM is set with 1; so another addition should fail due to
+ * lack of memory.
+ */
+ packet = tsch_queue_add_packet(TEST_PEER_ADDR, NULL, NULL);
+ UNIT_TEST_ASSERT(packet == NULL);
+
+ /* tsch_queue_flush_nbr_queue() is called inside of tsch_queue_reset(). */
+ tsch_queue_reset();
+
+ /* After flushing the nbr queue, we should be able to add a new packet */
+ packet = tsch_queue_add_packet(TEST_PEER_ADDR, NULL, NULL);
+ UNIT_TEST_ASSERT(packet != NULL);
+
+ UNIT_TEST_END();
+}
+
+PROCESS_THREAD(test_process, ev, data)
+{
+ static struct etimer et;
+
+ PROCESS_BEGIN();
+
+ tsch_set_coordinator(1);
+
+ etimer_set(&et, CLOCK_SECOND);
+ while(tsch_is_associated == 0) {
+ PROCESS_YIELD_UNTIL(etimer_expired(&et));
+ etimer_reset(&et);
+ }
+
+ printf("Run unit-test\n");
+ printf("---\n");
+
+ UNIT_TEST_RUN(test);
+
+ printf("=check-me= DONE\n");
+ PROCESS_END();
+}
diff --git a/regression-tests/27-tsch/js/unit-test.js b/regression-tests/27-tsch/js/unit-test.js
new file mode 100644
index 000000000..015d3b63b
--- /dev/null
+++ b/regression-tests/27-tsch/js/unit-test.js
@@ -0,0 +1,27 @@
+TIMEOUT(10000, log.testFailed());
+
+var failed = false;
+var done = 0;
+
+while(done < sim.getMotes().length) {
+ YIELD();
+
+ log.log(time + " " + "node-" + id + " "+ msg + "\n");
+
+ if(msg.contains("=check-me=") == false) {
+ continue;
+ }
+
+ if(msg.contains("FAILED")) {
+ failed = true;
+ }
+
+ if(msg.contains("DONE")) {
+ done++;
+ }
+}
+if(failed) {
+ log.testFailed();
+}
+log.testOK();
+