policer: fix coverity warning/NULL dereference
[vpp.git] / src / plugins / wireguard / wireguard.c
old mode 100755 (executable)
new mode 100644 (file)
index 0092181..8438cc1
@@ -15,9 +15,7 @@
 
 #include <vnet/vnet.h>
 #include <vnet/plugin/plugin.h>
-#include <vnet/ipip/ipip.h>
 #include <vpp/app/version.h>
-#include <vnet/udp/udp.h>
 
 #include <wireguard/wireguard_send.h>
 #include <wireguard/wireguard_key.h>
@@ -32,7 +30,20 @@ wg_init (vlib_main_t * vm)
   wg_main_t *wmp = &wg_main;
 
   wmp->vlib_main = vm;
-  wmp->peers = 0;
+
+  wmp->in4_fq_index = vlib_frame_queue_main_init (wg4_input_node.index, 0);
+  wmp->in6_fq_index = vlib_frame_queue_main_init (wg6_input_node.index, 0);
+  wmp->out4_fq_index =
+    vlib_frame_queue_main_init (wg4_output_tun_node.index, 0);
+  wmp->out6_fq_index =
+    vlib_frame_queue_main_init (wg6_output_tun_node.index, 0);
+
+  vlib_thread_main_t *tm = vlib_get_thread_main ();
+
+  vec_validate_aligned (wmp->per_thread_data, tm->n_vlib_mains,
+                       CLIB_CACHE_LINE_BYTES);
+
+  wg_timer_wheel_init ();
 
   return (NULL);
 }
@@ -41,10 +52,16 @@ VLIB_INIT_FUNCTION (wg_init);
 
 /* *INDENT-OFF* */
 
-VNET_FEATURE_INIT (wg_output_tun, static) =
-{
+VNET_FEATURE_INIT (wg4_output_tun, static) = {
   .arc_name = "ip4-output",
-  .node_name = "wg-output-tun",
+  .node_name = "wg4-output-tun",
+  .runs_after = VNET_FEATURES ("gso-ip4"),
+};
+
+VNET_FEATURE_INIT (wg6_output_tun, static) = {
+  .arc_name = "ip6-output",
+  .node_name = "wg6-output-tun",
+  .runs_after = VNET_FEATURES ("gso-ip6"),
 };
 
 VLIB_PLUGIN_REGISTER () =