summaryrefslogtreecommitdiffstats
path: root/src/plugins/npt66/npt66.h
blob: 428dadb1672394a1f44dc15fc2f5d38354e40cd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// SPDX-License-Identifier: Apache-2.0
// Copyright(c) 2023 Cisco Systems, Inc.

#include <vlib/vlib.h>
#include <vnet/ip/ip6_packet.h>

typedef struct
{
  u32 sw_if_index;
  ip6_address_t internal;
  ip6_address_t external;
  u8 internal_plen;
  u8 external_plen;
  uword delta;
} npt66_binding_t;
typedef struct
{
  u32 *interface_by_sw_if_index;
  npt66_binding_t *bindings;
  u16 msg_id_base;
} npt66_main_t;

extern npt66_main_t npt66_main;

int npt66_binding_add_del (u32 sw_if_index, ip6_address_t *internal,
			   int internal_plen, ip6_address_t *external,
			   int external_plen, bool is_add);
npt66_binding_t *npt66_interface_by_sw_if_index (u32 sw_if_index);