1/* 2 ************************************************************************** 3 * Copyright (c) 2015, The Linux Foundation. All rights reserved. 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all copies. 7 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 10 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 12 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 13 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 ************************************************************************** 15 */ 16 17/* 18 * @file nss_nlipv4_if.h 19 * NSS Netlink IPv4 headers 20 */ 21#ifndef __NSS_NLIPV4_IF_H 22#define __NSS_NLIPV4_IF_H 23 24#include "nss_cmn.h" 25#include "nss_ipv4.h" 26 27/** 28 * IPv4 forwarding Family 29 */ 30#define NSS_NLIPV4_FAMILY "nss_nlipv4" 31#define NSS_NLIPV4_MCAST_GRP "nss_nlipv4_mcast" 32 33#define NSS_NLIPV4_ARPHRD_IPSEC_TUNNEL_TYPE 0x31 34#define NSS_NLIPV4_VLAN_ID_NOT_CONFIGURED 0xFFF 35 36/** 37 * @brief IPv4 rule 38 */ 39struct nss_nlipv4_rule { 40 struct nss_nlcmn cm; /**< common message header */ 41 42 char flow_ifname[IFNAMSIZ]; /**< ingress interface name */ 43 char return_ifname[IFNAMSIZ]; /**< egress interface name */ 44 45 struct nss_ipv4_msg nim; /**< rule message */ 46}; 47 48/** 49 * @brief NETLINK IPv4 message init 50 * 51 * @param rule[IN] NSS NETLINK IPv4 rule 52 * @param type[IN] IPv4 message type 53 */ 54static inline void nss_nlipv4_rule_init(struct nss_nlipv4_rule *rule, enum nss_ipv4_message_types type) 55{ 56 nss_nlcmn_set_ver(&rule->cm, NSS_NL_VER); 57 nss_nlcmn_init_cmd(&rule->cm, sizeof(struct nss_nlipv4_rule), type); 58} 59 60#endif /* __NSS_NLIPV4_IF_H */ 61