/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C)2006 USAGI/WIDE Project * * Author: * Masahide NAKAMURA @USAGI */ #ifndef __TUNNEL_H__ #define __TUNNEL_H__ 1 #include #include struct rtattr; struct ifinfomsg; extern struct rtnl_handle rth; struct tnl_print_nlmsg_info { const struct ifinfomsg *ifi; const void *p1; void *p2; void (*init)(const struct tnl_print_nlmsg_info *info); bool (*match)(const struct tnl_print_nlmsg_info *info); void (*print)(const void *t); }; int do_tunnels_list(struct tnl_print_nlmsg_info *info); const char *tnl_strproto(__u8 proto); int tnl_get_ioctl(const char *basedev, void *p); int tnl_add_ioctl(int cmd, const char *basedev, const char *name, void *p); int tnl_del_ioctl(const char *basedev, const char *name, void *p); int tnl_prl_ioctl(int cmd, const char *name, void *p); int tnl_6rd_ioctl(int cmd, const char *name, void *p); int tnl_ioctl_get_6rd(const char *name, void *p); __be32 tnl_parse_key(const char *name, const char *key); void tnl_print_encap(struct rtattr *tb[], int encap_type, int encap_flags, int encap_sport, int encap_dport); void tnl_print_endpoint(const char *name, const struct rtattr *rta, int family); void tnl_print_gre_flags(__u8 proto, __be16 i_flags, __be16 o_flags, __be32 i_key, __be32 o_key); #endif