Line data Source code
1 : /* 2 : * Copyright (c) 2016 Cisco and/or its affiliates. 3 : * Licensed under the Apache License, Version 2.0 (the "License"); 4 : * you may not use this file except in compliance with the License. 5 : * You may obtain a copy of the License at: 6 : * 7 : * http://www.apache.org/licenses/LICENSE-2.0 8 : * 9 : * Unless required by applicable law or agreed to in writing, software 10 : * distributed under the License is distributed on an "AS IS" BASIS, 11 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 : * See the License for the specific language governing permissions and 13 : * limitations under the License. 14 : */ 15 : /* 16 : *----------------------------------------------------------------------- 17 : * nsh_md2_ioam_api.c - iOAM for NSH/LISP-GPE related APIs to create 18 : * and maintain profiles 19 : *----------------------------------------------------------------------- 20 : */ 21 : 22 : #include <vnet/vnet.h> 23 : #include <vlib/unix/plugin.h> 24 : #include <vnet/plugin/plugin.h> 25 : #include <nsh/nsh-md2-ioam/nsh_md2_ioam.h> 26 : 27 : #include <vlibapi/api.h> 28 : #include <vlibmemory/api.h> 29 : 30 : /* define message structures */ 31 : #define vl_typedefs 32 : #include <nsh/nsh.api.h> 33 : #undef vl_typedefs 34 : 35 : /* define generated endian-swappers */ 36 : #define vl_endianfun 37 : #include <nsh/nsh.api.h> 38 : #undef vl_endianfun 39 : 40 : /* instantiate all the print functions we know about */ 41 : #define vl_printfun 42 : #include <nsh/nsh.api.h> 43 : #undef vl_printfun 44 : 45 : u8 *nsh_trace_main = NULL; 46 : static clib_error_t * 47 575 : nsh_md2_ioam_init (vlib_main_t * vm) 48 : { 49 575 : nsh_md2_ioam_main_t *sm = &nsh_md2_ioam_main; 50 575 : clib_error_t *error = 0; 51 : 52 575 : nsh_trace_main = 53 575 : (u8 *) vlib_get_plugin_symbol ("ioam_plugin.so", "trace_main"); 54 : 55 575 : if (!nsh_trace_main) 56 0 : return error; 57 : 58 575 : vec_new (nsh_md2_ioam_sw_interface_t, pool_elts (sm->sw_interfaces)); 59 575 : sm->dst_by_ip4 = hash_create_mem (0, sizeof (fib_prefix_t), sizeof (uword)); 60 : 61 575 : sm->dst_by_ip6 = hash_create_mem (0, sizeof (fib_prefix_t), sizeof (uword)); 62 : 63 575 : nsh_md2_ioam_interface_init (); 64 : 65 575 : return error; 66 : } 67 : 68 1151 : VLIB_INIT_FUNCTION (nsh_md2_ioam_init); 69 : 70 : /* 71 : * fd.io coding-style-patch-verification: ON 72 : * 73 : * Local Variables: 74 : * eval: (c-set-style "gnu") 75 : * End: 76 : */