udp: refactor udp code
[vpp.git] / src / uri / vppcom.c
index 76a2772..f0bd2f8 100644 (file)
@@ -136,7 +136,6 @@ typedef struct vppcom_main_t_
   u8 init;
   u32 *client_session_index_fifo;
   volatile u32 bind_session_index;
-  u32 tx_event_id;
   int main_cpu;
 
   /* vpe input queue */
@@ -1766,7 +1765,7 @@ vppcom_app_create (char *app_name)
       rv = vppcom_connect_to_vpp (app_name);
       if (rv)
        {
-         clib_warning ("[%s] couldn't connect to VPP.", vcm->my_pid);
+         clib_warning ("[%d] couldn't connect to VPP.", vcm->my_pid);
          return rv;
        }
 
@@ -2328,7 +2327,6 @@ vppcom_session_write (uint32_t session_index, void *buf, int n)
       /* Fabricate TX event, send to vpp */
       evt.fifo = tx_fifo;
       evt.event_type = FIFO_EVENT_APP_TX;
-      evt.event_id = vcm->tx_event_id++;
 
       rval = vppcom_session_at_index (session_index, &session);
       if (PREDICT_FALSE (rval))
@@ -3036,7 +3034,7 @@ vppcom_session_attr (uint32_t session_index, uint32_t op,
   session_t *session;
   int rv = VPPCOM_OK;
   u32 *flags = buffer;
-  vppcom_ip46_t *vcl_addr = buffer;
+  vppcom_endpt_t *ep = buffer;
 
   VCL_LOCK_AND_GET_SESSION (session_index, &session);
   switch (op)
@@ -3080,32 +3078,67 @@ vppcom_session_attr (uint32_t session_index, uint32_t op,
       break;
 
     case VPPCOM_ATTR_GET_PEER_ADDR:
-      if (buffer && buflen && (*buflen >= sizeof (*vcl_addr)))
+      if (buffer && buflen && (*buflen >= sizeof (*ep)))
        {
-         *vcl_addr = session->peer_addr;
-         *buflen = sizeof (*vcl_addr);
+         ep->vrf = session->vrf;
+         ep->is_ip4 = session->peer_addr.is_ip4;
+         ep->port = session->port;
+         if (session->peer_addr.is_ip4)
+           clib_memcpy (ep->ip, &session->peer_addr.ip46.ip4,
+                        sizeof (ip4_address_t));
+         else
+           clib_memcpy (ep->ip, &session->peer_addr.ip46.ip6,
+                        sizeof (ip6_address_t));
+         *buflen = sizeof (*ep);
          if (VPPCOM_DEBUG > 0)
            clib_warning ("VPPCOM_ATTR_GET_PEER_ADDR: is_ip4 = %u, "
-                         "addr = %U", vcl_addr->is_ip4, format_ip46_address,
-                         &vcl_addr->ip46, vcl_addr->is_ip4);
+                         "addr = %U", ep->is_ip4, format_ip46_address,
+                         &session->peer_addr.ip46, ep->is_ip4);
        }
       else
        rv = VPPCOM_EINVAL;
       break;
 
     case VPPCOM_ATTR_GET_LCL_ADDR:
-      if (buffer && buflen && (*buflen >= sizeof (*vcl_addr)))
+      if (buffer && buflen && (*buflen >= sizeof (*ep)))
        {
-         *vcl_addr = session->lcl_addr;
-         *buflen = sizeof (*vcl_addr);
+         ep->vrf = session->vrf;
+         ep->is_ip4 = session->lcl_addr.is_ip4;
+         ep->port = session->port;
+         if (session->lcl_addr.is_ip4)
+           clib_memcpy (ep->ip, &session->lcl_addr.ip46.ip4,
+                        sizeof (ip4_address_t));
+         else
+           clib_memcpy (ep->ip, &session->lcl_addr.ip46.ip6,
+                        sizeof (ip6_address_t));
+         *buflen = sizeof (*ep);
          if (VPPCOM_DEBUG > 0)
-           clib_warning ("VPPCOM_ATTR_GET_LCL_ADDR: is_ip4 = %u, "
-                         "addr = %U", vcl_addr->is_ip4, format_ip46_address,
-                         &vcl_addr->ip46, vcl_addr->is_ip4);
+           if (VPPCOM_DEBUG > 0)
+             clib_warning ("VPPCOM_ATTR_GET_LCL_ADDR: is_ip4 = %u, "
+                           "addr = %U", ep->is_ip4, format_ip46_address,
+                           &session->lcl_addr.ip46, ep->is_ip4);
        }
       else
        rv = VPPCOM_EINVAL;
       break;
+
+    case VPPCOM_ATTR_SET_REUSEADDR:
+      break;
+
+    case VPPCOM_ATTR_SET_BROADCAST:
+      break;
+
+    case VPPCOM_ATTR_SET_V6ONLY:
+      break;
+
+    case VPPCOM_ATTR_SET_KEEPALIVE:
+      break;
+
+    case VPPCOM_ATTR_SET_TCP_KEEPIDLE:
+      break;
+
+    case VPPCOM_ATTR_SET_TCP_KEEPINTVL:
+      break;
     }
 
 done: