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 : #include "fib_entry.h" 17 : #include "fib_entry_src.h" 18 : 19 : /** 20 : * Source initialisation Function 21 : */ 22 : static void 23 5231 : fib_entry_src_drop_init (fib_entry_src_t *src) 24 : { 25 5231 : src->fes_flags = FIB_ENTRY_SRC_FLAG_NONE; 26 5231 : } 27 : 28 : static void 29 2753 : fib_entry_src_drop_remove (fib_entry_src_t *src) 30 : { 31 2753 : src->fes_pl = FIB_NODE_INDEX_INVALID; 32 2753 : } 33 : 34 : static void 35 5231 : fib_entry_src_drop_add (fib_entry_src_t *src, 36 : const fib_entry_t *entry, 37 : fib_entry_flag_t flags, 38 : dpo_proto_t proto, 39 : const dpo_id_t *dpo) 40 : { 41 5231 : src->fes_pl = fib_path_list_create_special(proto, 42 : FIB_PATH_LIST_FLAG_DROP, 43 : dpo); 44 5231 : } 45 : 46 : const static fib_entry_src_vft_t drop_src_vft = { 47 : .fesv_init = fib_entry_src_drop_init, 48 : .fesv_add = fib_entry_src_drop_add, 49 : .fesv_remove = fib_entry_src_drop_remove, 50 : }; 51 : 52 : void 53 559 : fib_entry_src_drop_register (void) 54 : { 55 559 : fib_entry_src_behaviour_register(FIB_SOURCE_BH_DROP, 56 : &drop_src_vft); 57 559 : } 58 : 59 :