diff --git a/vnet/vnet/handoff.c b/vnet/vnet/handoff.c
index 05eea03..32c665d 100644
--- a/vnet/vnet/handoff.c
+++ b/vnet/vnet/handoff.c
@@ -222,11 +222,13 @@
     [0] = "error-drop",
   },
 };
-/* *INDENT-ON* */
 
 VLIB_NODE_FUNCTION_MULTIARCH (worker_handoff_node, worker_handoff_node_fn)
-     int interface_handoff_enable_disable (vlib_main_t * vm, u32 sw_if_index,
-					   uword * bitmap, int enable_disable)
+/* *INDENT-ON* */
+
+int
+interface_handoff_enable_disable (vlib_main_t * vm, u32 sw_if_index,
+				  uword * bitmap, int enable_disable)
 {
   handoff_main_t *hm = &handoff_main;
   vnet_sw_interface_t *sw;
@@ -522,10 +524,12 @@
         [HANDOFF_DISPATCH_NEXT_MPLS_INPUT] = "mpls-input",
   },
 };
-/* *INDENT-ON* */
 
 VLIB_NODE_FUNCTION_MULTIARCH (handoff_dispatch_node, handoff_dispatch_node_fn)
-     clib_error_t *handoff_init (vlib_main_t * vm)
+/* *INDENT-ON* */
+
+clib_error_t *
+handoff_init (vlib_main_t * vm)
 {
   handoff_main_t *hm = &handoff_main;
   vlib_thread_main_t *tm = vlib_get_thread_main ();
diff --git a/vnet/vnet/sr/sr.c b/vnet/vnet/sr/sr.c
index 086cbe9..6a78565 100644
--- a/vnet/vnet/sr/sr.c
+++ b/vnet/vnet/sr/sr.c
@@ -729,12 +729,13 @@
 #undef _
   },
 };
-/* *INDENT-ON* */
 
 VLIB_NODE_FUNCTION_MULTIARCH (sr_rewrite_node, sr_rewrite)
-     static int ip6_delete_route_no_next_hop (ip6_address_t * dst_address_arg,
-					      u32 dst_address_length,
-					      u32 rx_table_id)
+/* *INDENT-ON* */
+
+static int
+ip6_delete_route_no_next_hop (ip6_address_t * dst_address_arg,
+			      u32 dst_address_length, u32 rx_table_id)
 {
   fib_prefix_t pfx = {
     .fp_len = dst_address_length,
@@ -2176,10 +2177,12 @@
 #undef _
   },
 };
-/* *INDENT-ON* */
 
 VLIB_NODE_FUNCTION_MULTIARCH (sr_fix_dst_addr_node, sr_fix_dst_addr)
-     static clib_error_t *sr_init (vlib_main_t * vm)
+/* *INDENT-ON* */
+
+static clib_error_t *
+sr_init (vlib_main_t * vm)
 {
   ip6_sr_main_t *sm = &sr_main;
   clib_error_t *error = 0;
@@ -2852,10 +2855,12 @@
 #undef _
   },
 };
-/* *INDENT-ON* */
 
 VLIB_NODE_FUNCTION_MULTIARCH (sr_local_node, sr_local)
-     ip6_sr_main_t *sr_get_main (vlib_main_t * vm)
+/* *INDENT-ON* */
+
+ip6_sr_main_t *
+sr_get_main (vlib_main_t * vm)
 {
   vlib_call_init_function (vm, sr_init);
   ASSERT (sr_local_node.index);
diff --git a/vnet/vnet/sr/sr_replicate.c b/vnet/vnet/sr/sr_replicate.c
index 5fd9ef0..9cc7c5a 100644
--- a/vnet/vnet/sr/sr_replicate.c
+++ b/vnet/vnet/sr/sr_replicate.c
@@ -397,10 +397,12 @@
         [SR_REPLICATE_NEXT_IP6_LOOKUP] = "ip6-lookup",
   },
 };
-/* *INDENT-ON* */
 
 VLIB_NODE_FUNCTION_MULTIARCH (sr_replicate_node, sr_replicate_node_fn)
-     clib_error_t *sr_replicate_init (vlib_main_t * vm)
+/* *INDENT-ON* */
+
+clib_error_t *
+sr_replicate_init (vlib_main_t * vm)
 {
   sr_replicate_main_t *msm = &sr_replicate_main;
 
