Index: /soft/giet_vm/giet_kernel/sys_handler.c
===================================================================
--- /soft/giet_vm/giet_kernel/sys_handler.c	(revision 488)
+++ /soft/giet_vm/giet_kernel/sys_handler.c	(revision 489)
@@ -386,5 +386,6 @@
 
 ////////////////////////////////////////
-int _sys_nic_start( unsigned int is_rx )
+int _sys_nic_start( unsigned int is_rx,
+                    unsigned int channel )
 {
 
@@ -416,12 +417,12 @@
 #endif
 
-    if ( nic_channel >= NB_NIC_CHANNELS )
-    {
-        _printf("\n[GIET_ERROR] in _sys_nic_start(): NIC channel not allocated\n");
+    if ( nic_channel != channel )
+    {
+        _printf("\n[GIET_ERROR] in _sys_nic_start(): illegal NIC channel\n");
         return -1;
     }
     if ( cma_channel >= NB_CMA_CHANNELS )
     {
-        _printf("\n[GIET_ERROR] in _sys_nic_start(): CMA channel not allocated\n");
+        _printf("\n[GIET_ERROR] in _sys_nic_start(): illegal CMA channel\n");
         return -1;
     }
@@ -474,5 +475,5 @@
     unsigned int offset;
     if ( is_rx ) offset = 0x4000;
-    else         offset = 0x4010;
+    else         offset = 0x4080;
     nic_chbuf_pbase = (((unsigned long long)((X_IO << Y_WIDTH) + Y_IO))<<32) |
                       (SEG_NIC_BASE + (nic_channel<<15) + offset);
@@ -683,5 +684,6 @@
 
 ////////////////////////////////////////
-int _sys_nic_stop( unsigned int is_rx )
+int _sys_nic_stop( unsigned int is_rx,
+                   unsigned int channel )
 {
     unsigned int nic_channel;
@@ -700,12 +702,14 @@
     }
 
-    if ( nic_channel >= NB_NIC_CHANNELS )
-    {
-        _printf("\n[GIET_ERROR] in _sys_nic_start(): NIC channel not allocated\n");
+    if ( nic_channel != channel )
+    {
+        _printf("\n[GIET_ERROR] in _sys_nic_stop(): illegal NIC channel\n"
+                "  allocated channel = %d / requested channel = %d\n",
+                   nic_channel , channel );
         return -1;
     }
     if ( cma_channel >= NB_CMA_CHANNELS )
     {
-        _printf("\n[GIET_ERROR] in _sys_nic_start(): CMA channel not allocated\n");
+        _printf("\n[GIET_ERROR] in _sys_nic_stop(): illegal CMA channel\n");
         return -1;
     }
@@ -721,5 +725,6 @@
 
 ////////////////////////////////////////
-int _sys_nic_clear( unsigned int is_rx )
+int _sys_nic_clear( unsigned int is_rx,
+                    unsigned int channel )
 {
     unsigned int nic_channel;
@@ -729,7 +734,7 @@
     else          nic_channel = _get_context_slot( CTX_NIC_TX_ID );
 
-    if ( nic_channel >= NB_NIC_CHANNELS )
-    {
-        _printf("\n[GIET_ERROR] in _sys_nic_start(): NIC channel not allocated\n");
+    if ( nic_channel != channel )
+    {
+        _printf("\n[GIET_ERROR] in _sys_nic_clear(): illegal NIC channel\n");
         return -1;
     }
@@ -761,5 +766,6 @@
 
 ////////////////////////////////////////
-int _sys_nic_stats( unsigned int is_rx )
+int _sys_nic_stats( unsigned int is_rx,
+                    unsigned int channel )
 {
     unsigned int nic_channel;
@@ -769,7 +775,7 @@
     else          nic_channel = _get_context_slot( CTX_NIC_TX_ID );
 
-    if ( nic_channel >= NB_NIC_CHANNELS )
-    {
-        _printf("\n[GIET_ERROR] in _sys_nic_start(): NIC channel not allocated\n");
+    if ( nic_channel != channel )
+    {
+        _printf("\n[GIET_ERROR] in _sys_nic_stats(): illegal NIC channel\n");
         return -1;
     }
Index: /soft/giet_vm/giet_kernel/sys_handler.h
===================================================================
--- /soft/giet_vm/giet_kernel/sys_handler.h	(revision 488)
+++ /soft/giet_vm/giet_kernel/sys_handler.h	(revision 489)
@@ -106,15 +106,19 @@
 int _sys_nic_alloc( unsigned int is_rx );
 
-int _sys_nic_start( unsigned int is_rx );
+int _sys_nic_start( unsigned int is_rx,
+                    unsigned int channel );
 
 int _sys_nic_move( unsigned int is_rx,
-                   unsigned int nic_channel,
+                   unsigned int channel,
                    void*        buffer );
 
-int _sys_nic_stop( unsigned int is_rx );
+int _sys_nic_stop( unsigned int is_rx,
+                   unsigned int channel );
 
-int _sys_nic_clear( unsigned int is_rx );
+int _sys_nic_clear( unsigned int is_rx,
+                    unsigned int channel );
 
-int _sys_nic_stats( unsigned int is_rx );
+int _sys_nic_stats( unsigned int is_rx,
+                    unsigned int channel );
 
 //////////////////////////////////////////////////////////////////////////////
