nic_drivers: combined errors for NICs
authorRoni Häcki <roni.haecki@inf.ethz.ch>
Thu, 9 Mar 2017 13:35:34 +0000 (14:35 +0100)
committerRoni Häcki <roni.haecki@inf.ethz.ch>
Thu, 9 Mar 2017 13:35:34 +0000 (14:35 +0100)
Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>

errors/errno.fugu
lib/devif/backends/net/e10k/devif_backend_e10k.c
lib/devif/backends/net/solarflare/hw_queue.h
usr/drivers/e10k/e10k_cdriver.c
usr/drivers/solarflare/mcdi_rpc.c
usr/drivers/solarflare/sfn5122f_cdriver.c
usr/drivers/solarflare/sfn5122f_queue.h

index 1cea0f2..61947ef 100755 (executable)
@@ -1228,8 +1228,8 @@ errors cpuid DEVQ_ERR_ {
     failure DESCQ_INIT              "Failure in descriptor queue init",
 };
 
-// errors generated by solarflare cards
-errors sfn SFN_ERR_{
+// errors generated by network cards
+errors sfn NIC_ERR_{
     failure IO                   "Error during card IO",
     failure INTR                 "Interrupted system call",
     failure NOSYS                "Not implemented",
index d2c5e5f..47178e9 100644 (file)
@@ -109,7 +109,7 @@ static errval_t enqueue_tx_buf(struct e10k_queue* q, regionid_t rid,
         DEBUG_QUEUE("e10k_%d: Not enough space in TX ring, not adding buffer\n", 
                 q->id);
         // TODO better error
-        return SFN_ERR_ENQUEUE;
+        return NIC_ERR_ENQUEUE;
     }
 
     bool last = flags & NETIF_TXFLAG_LAST;
@@ -189,7 +189,7 @@ static errval_t enqueue_rx_buf(struct e10k_queue* q, regionid_t rid,
         DEBUG_QUEUE("e10k_%d: Not enough space in RX ring, not adding buffer\n", 
                 q->id);
         // TODO better error
-        return SFN_ERR_ENQUEUE;
+        return NIC_ERR_ENQUEUE;
     }
 
     if (q->use_vtd) {
index adf4de8..f728b27 100644 (file)
@@ -215,12 +215,12 @@ static inline errval_t sfn5122f_handle_drv_ev(sfn5122f_queue_t* q, uint16_t n)
     
     if (sfn5122f_q_driver_ev_driver_ev_subcode_extract(code) == 14) {
         printf("RX error %d \n", n);
-        return SFN_ERR_RX_PKT;
+        return NIC_ERR_RX_PKT;
     }
 
     if (sfn5122f_q_driver_ev_driver_ev_subcode_extract(code) == 15) {
         printf("TX error %d \n", n);
-        return SFN_ERR_TX_PKT;
+        return NIC_ERR_TX_PKT;
     }
 
     memset(code, 0xff, sfn5122f_q_event_entry_size);
@@ -338,14 +338,14 @@ static inline errval_t sfn5122f_queue_handle_rx_ev_devif(sfn5122f_queue_t* q,
          q->rx_head = (rx_head + 1) % q->rx_size;
          if (sfn5122f_q_rx_ev_rx_ev_tobe_disc_extract(ev)) {
             // packet discared by softare -> ok
-            return SFN_ERR_RX_DISCARD;
+            return NIC_ERR_RX_DISCARD;
          }
 
          printf("Packet not ok \n");
          if (sfn5122f_q_rx_ev_rx_ev_buf_owner_id_extract(ev)) {
              printf("Wrong owner \n");
          }
-         return SFN_ERR_RX_PKT;
+         return NIC_ERR_RX_PKT;
     }
 
     *valid_length = sfn5122f_q_rx_ev_rx_ev_byte_ctn_extract(ev);
@@ -448,7 +448,7 @@ static inline errval_t sfn5122f_queue_handle_tx_ev_devif(sfn5122f_queue_t* q,
 
     if (sfn5122f_q_tx_ev_tx_ev_pkt_err_extract(ev)){     
         q->tx_head = (tx_head +1) % q->tx_size;
-        return SFN_ERR_TX_PKT;
+        return NIC_ERR_TX_PKT;
     }
 
     if (sfn5122f_q_tx_ev_tx_ev_comp_extract(ev) == 1){  
index 407160e..697b6d7 100644 (file)
@@ -1446,7 +1446,7 @@ static void request_vf_number(struct e10k_vf_binding *b)
 
     if (vf_num == 255){
         //TODO better error
-        err = SFN_ERR_ALLOC_QUEUE;
+        err = NIC_ERR_ALLOC_QUEUE;
     } else {
         err = SYS_ERR_OK;
     }
index d0e8690..f9a49bd 100644 (file)
@@ -97,13 +97,13 @@ errval_t mcdi_rpc(unsigned cmd, const uint8_t *in, uint32_t inlen,
         DEBUG("AN ERROR OCCURRED: CMD %d, ERROR %d \n",cmd , reg);
         switch(reg){
         case 4:
-            return SFN_ERR_INTR;
+            return NIC_ERR_INTR;
         case 5:
-            return SFN_ERR_IO;
+            return NIC_ERR_IO;
         case 37:
-            return SFN_ERR_NOSYS;
+            return NIC_ERR_NOSYS;
         default:
-            return SFN_ERR_UNKNOWN;
+            return NIC_ERR_UNKNOWN;
         }
     }
     // read result
index 37c5d07..2453cdd 100644 (file)
@@ -1373,7 +1373,7 @@ static void cd_create_queue(struct sfn5122f_devif_binding *b, struct capref fram
     }
 
     if (n == -1) {
-        err = SFN_ERR_ALLOC_QUEUE;
+        err = NIC_ERR_ALLOC_QUEUE;
         err = b->tx_vtbl.create_queue_response(b, NOP_CONT, 0, NULL_CAP, err);
         //err = b->tx_vtbl.create_queue_response(b, NOP_CONT, 0, err);
         assert(err_is_ok(err));
@@ -1411,7 +1411,7 @@ static void cd_create_queue(struct sfn5122f_devif_binding *b, struct capref fram
     if(queues[n].ev_buf_tbl == -1 ||
        queues[n].tx_buf_tbl == -1 ||
        queues[n].rx_buf_tbl == -1){
-        err = SFN_ERR_ALLOC_QUEUE;
+        err = NIC_ERR_ALLOC_QUEUE;
         //err = b->tx_vtbl.create_queue_response(b, NOP_CONT, 0, err);
         err = b->tx_vtbl.create_queue_response(b, NOP_CONT, 0, NULL_CAP, err);
         assert(err_is_ok(err));
@@ -1441,7 +1441,7 @@ static void cd_register_region(struct sfn5122f_devif_binding *b, uint16_t qid,
 
     err = invoke_frame_identify(region, &id);
     if (err_is_fail(err)) {
-        err = b->tx_vtbl.register_region_response(b, NOP_CONT, 0, SFN_ERR_REGISTER_REGION);
+        err = b->tx_vtbl.register_region_response(b, NOP_CONT, 0, NIC_ERR_REGISTER_REGION);
         assert(err_is_ok(err));
     }
 
@@ -1451,7 +1451,7 @@ static void cd_register_region(struct sfn5122f_devif_binding *b, uint16_t qid,
     // TODO unsigned/signed not nice ...
     buffer_offset = alloc_buf_tbl_entries(addr, size/BUF_SIZE, qid, true, d);
     if (buffer_offset == -1) {
-        err = b->tx_vtbl.register_region_response(b, NOP_CONT, 0, SFN_ERR_REGISTER_REGION);
+        err = b->tx_vtbl.register_region_response(b, NOP_CONT, 0, NIC_ERR_REGISTER_REGION);
         assert(err_is_ok(err));
     }
     
index f6d0855..860d9ec 100644 (file)
@@ -179,12 +179,12 @@ static inline errval_t sfn5122f_handle_drv_ev(sfn5122f_queue_t* q, uint16_t n)
     
     if (sfn5122f_q_driver_ev_driver_ev_subcode_extract(code) == 14) {
         printf("RX error %d \n", n);
-        return SFN_ERR_RX_PKT;
+        return NIC_ERR_RX_PKT;
     }
 
     if (sfn5122f_q_driver_ev_driver_ev_subcode_extract(code) == 15) {
         printf("TX error %d \n", n);
-        return SFN_ERR_TX_PKT;
+        return NIC_ERR_TX_PKT;
     }
 
     memset(code, 0xff, sfn5122f_q_event_entry_size);
@@ -318,11 +318,11 @@ static inline errval_t sfn5122f_queue_handle_rx_ev(sfn5122f_queue_t* q,
          // TODO error handling
          if (sfn5122f_q_rx_ev_rx_ev_tobe_disc_extract(ev)) {
             // packet discared by softare -> ok
-            return SFN_ERR_RX_DISCARD;
+            return NIC_ERR_RX_DISCARD;
          }
 
          printf("Packet not ok \n");
-         return SFN_ERR_RX_PKT;
+         return NIC_ERR_RX_PKT;
     }
 
     *len = sfn5122f_q_rx_ev_rx_ev_byte_ctn_extract(ev);
@@ -382,14 +382,14 @@ static inline errval_t sfn5122f_queue_handle_rx_ev_devif(sfn5122f_queue_t* q,
          q->rx_head = (rx_head + 1) % q->rx_size;
          if (sfn5122f_q_rx_ev_rx_ev_tobe_disc_extract(ev)) {
             // packet discared by softare -> ok
-            return SFN_ERR_RX_DISCARD;
+            return NIC_ERR_RX_DISCARD;
          }
 
          printf("Packet not ok \n");
          if (sfn5122f_q_rx_ev_rx_ev_buf_owner_id_extract(ev)) {
              printf("Wrong owner \n");
          }
-         return SFN_ERR_RX_PKT;
+         return NIC_ERR_RX_PKT;
     }
 
     *len = sfn5122f_q_rx_ev_rx_ev_byte_ctn_extract(ev);
@@ -463,7 +463,7 @@ static inline errval_t sfn5122f_queue_handle_tx_ev(sfn5122f_queue_t* q, void** o
     ev = q->ev_ring[ev_head];
     if(sfn5122f_q_tx_ev_tx_ev_pkt_err_extract(ev)){     
            //TODO error handling
-           return SFN_ERR_TX_PKT;
+           return NIC_ERR_TX_PKT;
     }
 
     if (sfn5122f_q_tx_ev_tx_ev_comp_extract(ev) == 1){  
@@ -518,7 +518,7 @@ static inline errval_t sfn5122f_queue_handle_tx_ev_devif(sfn5122f_queue_t* q,
 
     if (sfn5122f_q_tx_ev_tx_ev_pkt_err_extract(ev)){     
         q->tx_head = (tx_head +1) % q->tx_size;
-        return SFN_ERR_TX_PKT;
+        return NIC_ERR_TX_PKT;
     }
 
     if (sfn5122f_q_tx_ev_tx_ev_comp_extract(ev) == 1){