Line data Source code
1 : /* 2 : * Copyright (c) 2020 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 <vnet/ip/ip.h> 17 : #include <nat/nat44-ei/nat44_ei_dpo.h> 18 : 19 : dpo_type_t nat_dpo_type; 20 : 21 : void 22 0 : nat_dpo_create (dpo_proto_t dproto, u32 aftr_index, dpo_id_t *dpo) 23 : { 24 0 : dpo_set (dpo, nat_dpo_type, dproto, aftr_index); 25 0 : } 26 : 27 : u8 * 28 0 : format_nat_dpo (u8 *s, va_list *args) 29 : { 30 0 : index_t index = va_arg (*args, index_t); 31 0 : CLIB_UNUSED (u32 indent) = va_arg (*args, u32); 32 : 33 0 : return (format (s, "NAT44 out2in: AFTR:%d", index)); 34 : } 35 : 36 : static void 37 0 : nat_dpo_lock (dpo_id_t *dpo) 38 : { 39 0 : } 40 : 41 : static void 42 0 : nat_dpo_unlock (dpo_id_t *dpo) 43 : { 44 0 : } 45 : 46 : const static dpo_vft_t nat_dpo_vft = { 47 : .dv_lock = nat_dpo_lock, 48 : .dv_unlock = nat_dpo_unlock, 49 : .dv_format = format_nat_dpo, 50 : }; 51 : 52 : const static char *const nat_ip4_nodes[] = { 53 : "nat44-ei-out2in", 54 : NULL, 55 : }; 56 : 57 : const static char *const nat_ip6_nodes[] = { 58 : NULL, 59 : }; 60 : 61 : const static char *const *const nat_nodes[DPO_PROTO_NUM] = { 62 : [DPO_PROTO_IP4] = nat_ip4_nodes, 63 : [DPO_PROTO_IP6] = nat_ip6_nodes, 64 : [DPO_PROTO_MPLS] = NULL, 65 : }; 66 : 67 : void 68 559 : nat_dpo_module_init (void) 69 : { 70 559 : nat_dpo_type = dpo_register_new_type (&nat_dpo_vft, nat_nodes); 71 559 : } 72 : 73 : /* 74 : * fd.io coding-style-patch-verification: ON 75 : * 76 : * Local Variables: 77 : * eval: (c-set-style "gnu") 78 : * End: 79 : */