svm: rename fifo tx notifications to reflect use 07/20407/10
authorFlorin Coras <fcoras@cisco.com>
Fri, 28 Jun 2019 19:45:12 +0000 (12:45 -0700)
committerDave Barach <openvpp@barachs.net>
Sat, 29 Jun 2019 00:30:41 +0000 (00:30 +0000)
Type: refactor

Change-Id: I651db44acdcb666a9c63e1037352cf88c68795b5
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/plugins/hs_apps/sapi/quic_echo.c
src/plugins/quic/quic.c
src/plugins/tlsopenssl/tls_openssl.c
src/svm/svm_fifo.h
src/vcl/vppcom.c
src/vnet/session/session.c
src/vnet/session/session_node.c

index 3c9ddcc..fa8e69f 100644 (file)
@@ -638,7 +638,7 @@ echo_session_dequeue_notify (echo_session_t * s)
   int rv;
   rv = app_send_io_evt_to_vpp (s->vpp_evt_q, s->rx_fifo->master_session_index,
                               SESSION_IO_EVT_RX, SVM_Q_WAIT);
-  svm_fifo_clear_tx_ntf (s->rx_fifo);
+  svm_fifo_clear_deq_ntf (s->rx_fifo);
   if (rv)
     ECHO_FAIL ("app_send_io_evt_to_vpp errored %d", rv);
 }
@@ -825,7 +825,7 @@ recv_data_chunk (echo_main_t * em, echo_session_t * s, u8 * rx_buf)
   n_read = app_recv_stream ((app_session_t *) s, rx_buf, vec_len (rx_buf));
   if (n_read <= 0)
     return 0;
-  if (svm_fifo_needs_tx_ntf (s->rx_fifo, n_read))
+  if (svm_fifo_needs_deq_ntf (s->rx_fifo, n_read))
     echo_session_dequeue_notify (s);
 
   if (em->test_return_packets)
index 93c0162..a990d04 100644 (file)
@@ -586,9 +586,9 @@ quic_accept_stream (void *s)
       quicly_reset_stream (stream, QUIC_APP_ALLOCATION_ERROR);
       return;
     }
-  svm_fifo_add_want_tx_ntf (stream_session->rx_fifo,
-                           SVM_FIFO_WANT_TX_NOTIF_IF_FULL |
-                           SVM_FIFO_WANT_TX_NOTIF_IF_EMPTY);
+  svm_fifo_add_want_deq_ntf (stream_session->rx_fifo,
+                            SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL |
+                            SVM_FIFO_WANT_DEQ_NOTIF_IF_EMPTY);
 
   rv = app_worker_accept_notify (app_wrk, stream_session);
   if (rv)
@@ -1243,9 +1243,9 @@ quic_connect_new_stream (session_endpoint_cfg_t * sep)
       return app_worker_connect_notify (app_wrk, NULL, sep->opaque);
     }
 
-  svm_fifo_add_want_tx_ntf (stream_session->rx_fifo,
-                           SVM_FIFO_WANT_TX_NOTIF_IF_FULL |
-                           SVM_FIFO_WANT_TX_NOTIF_IF_EMPTY);
+  svm_fifo_add_want_deq_ntf (stream_session->rx_fifo,
+                            SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL |
+                            SVM_FIFO_WANT_DEQ_NOTIF_IF_EMPTY);
 
   stream_session->session_state = SESSION_STATE_READY;
   if (app_worker_connect_notify (app_wrk, stream_session, sep->opaque))
@@ -1842,7 +1842,7 @@ quic_custom_app_rx_callback (transport_connection_t * tc)
   session_t *stream_session = session_get (tc->s_index, tc->thread_index);
   QUIC_DBG (2, "Received app READ notification");
   quic_ack_rx_data (stream_session);
-  svm_fifo_reset_tx_ntf (stream_session->rx_fifo);
+  svm_fifo_reset_has_deq_ntf (stream_session->rx_fifo);
   return 0;
 }
 
index 4d4c4c3..6cb8ff0 100644 (file)
@@ -333,7 +333,7 @@ openssl_ctx_write (tls_ctx_t * ctx, session_t * app_session)
        }
     }
 
-  if (svm_fifo_needs_tx_ntf (app_session->tx_fifo, wrote))
+  if (svm_fifo_needs_deq_ntf (app_session->tx_fifo, wrote))
     session_dequeue_notify (app_session);
 
   if (wrote < deq_max)
index ce73be2..9b23d7e 100644 (file)
@@ -40,13 +40,13 @@ typedef struct
 #define SVM_FIFO_INVALID_INDEX         ((u32)~0)
 #define SVM_FIFO_MAX_EVT_SUBSCRIBERS   7
 
-typedef enum svm_fifo_tx_ntf_
+typedef enum svm_fifo_deq_ntf_
 {
-  SVM_FIFO_NO_TX_NOTIF = 0,
-  SVM_FIFO_WANT_TX_NOTIF = 1,
-  SVM_FIFO_WANT_TX_NOTIF_IF_FULL = 2,
-  SVM_FIFO_WANT_TX_NOTIF_IF_EMPTY = 4,
-} svm_fifo_tx_ntf_t;
+  SVM_FIFO_NO_DEQ_NOTIF = 0,           /**< No notification requested */
+  SVM_FIFO_WANT_DEQ_NOTIF = 1,         /**< Notify on dequeue */
+  SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL = 2, /**< Notify on transition from full */
+  SVM_FIFO_WANT_DEQ_NOTIF_IF_EMPTY = 4,        /**< Notify on transition to empty */
+} svm_fifo_deq_ntf_t;
 
 typedef struct
 {
@@ -100,8 +100,8 @@ typedef struct _svm_fifo
   u32 head;                    /**< fifo head position/byte */
   svm_fifo_chunk_t *head_chunk;        /**< tracks chunk where head lands */
   svm_fifo_chunk_t *ooo_deq;   /**< last chunk used for ooo dequeue */
-  volatile u32 want_tx_ntf;    /**< producer wants nudge */
-  volatile u32 has_tx_ntf;
+  volatile u32 want_deq_ntf;   /**< producer wants nudge */
+  volatile u32 has_deq_ntf;
 
     CLIB_CACHE_LINE_ALIGN_MARK (producer);
   u32 tail;                    /**< fifo tail position/byte */
@@ -741,97 +741,97 @@ svm_fifo_unset_event (svm_fifo_t * f)
 }
 
 /**
- * Set specific want tx notification flag
+ * Set specific want notification flag
  *
- * For list of flags see @ref svm_fifo_tx_ntf_t
+ * For list of flags see @ref svm_fifo_deq_ntf_t
  *
  * @param f            fifo
  * @param ntf_type     type of notification requested
  */
 static inline void
-svm_fifo_add_want_tx_ntf (svm_fifo_t * f, u8 ntf_type)
+svm_fifo_add_want_deq_ntf (svm_fifo_t * f, u8 ntf_type)
 {
-  f->want_tx_ntf |= ntf_type;
+  f->want_deq_ntf |= ntf_type;
 }
 
 /**
- * Clear specific want tx notification flag
+ * Clear specific want notification flag
  *
- * For list of flags see @ref svm_fifo_tx_ntf_t
+ * For list of flags see @ref svm_fifo_ntf_t
  *
  * @param f            fifo
  * @param ntf_type     type of notification to be cleared
  */
 static inline void
-svm_fifo_del_want_tx_ntf (svm_fifo_t * f, u8 ntf_type)
+svm_fifo_del_want_deq_ntf (svm_fifo_t * f, u8 ntf_type)
 {
-  f->want_tx_ntf &= ~ntf_type;
+  f->want_deq_ntf &= ~ntf_type;
 }
 
 /**
- * Clear the want tx notification flag and set has tx notification
+ * Clear the want notification flag and set has notification
  *
- * Should be used after enqueuing a tx event. This clears the
- * SVM_FIFO_WANT_TX_NOTIF flag but it does not clear
- * SVM_FIFO_WANT_TX_NOTIF_IF_FULL. If the latter was set, has_tx_ntf is
- * set to avoid enqueueing tx events for for all dequeue operations until
+ * Should be used after enqueuing an event. This clears the
+ * SVM_FIFO_WANT_NOTIF flag but it does not clear
+ * SVM_FIFO_WANT_NOTIF_IF_FULL. If the latter was set, has_ntf is
+ * set to avoid enqueueing events for for all dequeue operations until
  * it is manually cleared.
  *
  * @param f    fifo
  */
 static inline void
-svm_fifo_clear_tx_ntf (svm_fifo_t * f)
+svm_fifo_clear_deq_ntf (svm_fifo_t * f)
 {
-  /* Set the flag if want_tx_notif_if_full was the only ntf requested */
-  f->has_tx_ntf = f->want_tx_ntf == SVM_FIFO_WANT_TX_NOTIF_IF_FULL;
-  svm_fifo_del_want_tx_ntf (f, SVM_FIFO_WANT_TX_NOTIF);
+  /* Set the flag if want_notif_if_full was the only ntf requested */
+  f->has_deq_ntf = f->want_deq_ntf == SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL;
+  svm_fifo_del_want_deq_ntf (f, SVM_FIFO_WANT_DEQ_NOTIF);
 }
 
 /**
- * Clear has tx notification flag
+ * Clear has notification flag
  *
- * The fifo generates only one event per SVM_FIFO_WANT_TX_NOTIF_IF_FULL
- * request and sets has_tx_ntf. To received new events the flag must be
+ * The fifo generates only one event per SVM_FIFO_WANT_NOTIF_IF_FULL
+ * request and sets has_ntf. To received new events the flag must be
  * cleared using this function.
  *
  * @param f    fifo
  */
 static inline void
-svm_fifo_reset_tx_ntf (svm_fifo_t * f)
+svm_fifo_reset_has_deq_ntf (svm_fifo_t * f)
 {
-  f->has_tx_ntf = 0;
+  f->has_deq_ntf = 0;
 }
 
 /**
- * Check if fifo needs tx notification
+ * Check if fifo needs dequeue notification
  *
- * Determines based on tx notification request flags and state of the fifo if
- * a tx io event should be generated.
+ * Determines based on notification request flags and state of the fifo if
+ * an event should be generated.
  *
  * @param f            fifo
  * @param n_last_deq   number of bytes last dequeued
- * @return             1 if tx io event should be generated, 0 otherwise
+ * @return             1 if event should be generated, 0 otherwise
  */
 static inline u8
-svm_fifo_needs_tx_ntf (svm_fifo_t * f, u32 n_last_deq)
+svm_fifo_needs_deq_ntf (svm_fifo_t * f, u32 n_last_deq)
 {
-  u8 want_ntf = f->want_tx_ntf;
+  u8 want_ntf = f->want_deq_ntf;
 
-  if (PREDICT_TRUE (want_ntf == SVM_FIFO_NO_TX_NOTIF))
+  if (PREDICT_TRUE (want_ntf == SVM_FIFO_NO_DEQ_NOTIF))
     return 0;
-  else if (want_ntf & SVM_FIFO_WANT_TX_NOTIF)
+  else if (want_ntf & SVM_FIFO_WANT_DEQ_NOTIF)
     return 1;
-  if (want_ntf & SVM_FIFO_WANT_TX_NOTIF_IF_FULL)
+  if (want_ntf & SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL)
     {
       u32 max_deq = svm_fifo_max_dequeue_cons (f);
       u32 nitems = f->nitems;
-      if (!f->has_tx_ntf && max_deq < nitems
+      if (!f->has_deq_ntf && max_deq < nitems
          && max_deq + n_last_deq >= nitems)
        return 1;
     }
-  if (want_ntf & SVM_FIFO_WANT_TX_NOTIF_IF_EMPTY)
+  if (want_ntf & SVM_FIFO_WANT_DEQ_NOTIF_IF_EMPTY)
     {
-      if (!f->has_tx_ntf && svm_fifo_is_empty (f))
+      if (!f->has_deq_ntf && svm_fifo_is_empty (f))
        return 1;
     }
   return 0;
index 8a05e3f..9a351d8 100644 (file)
@@ -1535,11 +1535,11 @@ vppcom_session_read_internal (uint32_t session_handle, void *buf, int n,
     svm_fifo_unset_event (s->rx_fifo);
 
   /* Cut-through sessions might request tx notifications on rx fifos */
-  if (PREDICT_FALSE (rx_fifo->want_tx_ntf))
+  if (PREDICT_FALSE (rx_fifo->want_deq_ntf))
     {
       app_send_io_evt_to_vpp (s->vpp_evt_q, s->rx_fifo->master_session_index,
                              SESSION_IO_EVT_RX, SVM_Q_WAIT);
-      svm_fifo_reset_tx_ntf (s->rx_fifo);
+      svm_fifo_reset_has_deq_ntf (s->rx_fifo);
     }
 
   VDBG (2, "session %u[0x%llx]: read %d bytes from (%p)", s->session_index,
@@ -1703,7 +1703,7 @@ vppcom_session_write_inline (uint32_t session_handle, void *buf, size_t n,
        }
       while (svm_fifo_is_full_prod (tx_fifo))
        {
-         svm_fifo_add_want_tx_ntf (tx_fifo, SVM_FIFO_WANT_TX_NOTIF);
+         svm_fifo_add_want_deq_ntf (tx_fifo, SVM_FIFO_WANT_DEQ_NOTIF);
          if (vcl_session_is_closing (s))
            return vcl_session_closing_error (s);
          svm_msg_q_lock (mq);
@@ -2023,7 +2023,7 @@ vppcom_select (int n_bits, vcl_si_set * read_map, vcl_si_set * write_map,
         bits_set++;
       }
     else
-      svm_fifo_add_want_tx_ntf (session->tx_fifo, SVM_FIFO_WANT_TX_NOTIF);
+      svm_fifo_add_want_deq_ntf (session->tx_fifo, SVM_FIFO_WANT_DEQ_NOTIF);
   }));
 
 check_rd:
@@ -2232,8 +2232,8 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle,
       vep_session->vep.next_sh = session_handle;
 
       if (session->tx_fifo)
-       svm_fifo_add_want_tx_ntf (session->tx_fifo,
-                                 SVM_FIFO_WANT_TX_NOTIF_IF_FULL);
+       svm_fifo_add_want_deq_ntf (session->tx_fifo,
+                                  SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL);
 
       VDBG (1, "EPOLL_CTL_ADD: vep_sh %u, sh %u, events 0x%x, data 0x%llx!",
            vep_handle, session_handle, event->events, event->data.u64);
@@ -2317,7 +2317,7 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle,
       session->is_vep_session = 0;
 
       if (session->tx_fifo)
-       svm_fifo_del_want_tx_ntf (session->tx_fifo, SVM_FIFO_NO_TX_NOTIF);
+       svm_fifo_del_want_deq_ntf (session->tx_fifo, SVM_FIFO_NO_DEQ_NOTIF);
 
       VDBG (1, "EPOLL_CTL_DEL: vep_idx %u, sh %u!", vep_handle,
            session_handle);
@@ -2371,7 +2371,7 @@ vcl_epoll_wait_handle_mq_event (vcl_worker_t * wrk, session_event_t * e,
       add_event = 1;
       events[*num_ev].events |= EPOLLOUT;
       session_evt_data = session->vep.ev.data.u64;
-      svm_fifo_reset_tx_ntf (session->tx_fifo);
+      svm_fifo_reset_has_deq_ntf (session->tx_fifo);
       break;
     case SESSION_CTRL_EVT_ACCEPTED:
       session = vcl_session_accepted (wrk,
index 3a6d7e2..3732e4c 100644 (file)
@@ -449,7 +449,7 @@ session_tx_fifo_dequeue_drop (transport_connection_t * tc, u32 max_bytes)
 
   rv = svm_fifo_dequeue_drop (s->tx_fifo, max_bytes);
 
-  if (svm_fifo_needs_tx_ntf (s->tx_fifo, max_bytes))
+  if (svm_fifo_needs_deq_ntf (s->tx_fifo, max_bytes))
     session_dequeue_notify (s);
 
   return rv;
@@ -549,7 +549,7 @@ session_dequeue_notify (session_t * s)
     return session_notify_subscribers (app_wrk->app_index, s,
                                       s->tx_fifo, SESSION_IO_EVT_TX);
 
-  svm_fifo_clear_tx_ntf (s->tx_fifo);
+  svm_fifo_clear_deq_ntf (s->tx_fifo);
 
   return 0;
 }
index 8d01938..8abfb2f 100644 (file)
@@ -795,7 +795,7 @@ session_tx_fifo_read_and_snd_i (vlib_main_t * vm, vlib_node_runtime_t * node,
        if (svm_fifo_set_event (ctx->s->tx_fifo))
          vec_add1 (wrk->pending_event_vector, *e);
 
-      if (svm_fifo_needs_tx_ntf (ctx->s->tx_fifo, ctx->max_len_to_snd))
+      if (svm_fifo_needs_deq_ntf (ctx->s->tx_fifo, ctx->max_len_to_snd))
        session_dequeue_notify (ctx->s);
     }
   return SESSION_TX_OK;