aboutsummaryrefslogtreecommitdiff
path: root/data-ipa-cfg-mgr/ipacm/inc/IPACM_Netlink.h
diff options
context:
space:
mode:
Diffstat (limited to 'data-ipa-cfg-mgr/ipacm/inc/IPACM_Netlink.h')
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Netlink.h223
1 files changed, 0 insertions, 223 deletions
diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Netlink.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Netlink.h
deleted file mode 100644
index b0bdeb8..0000000
--- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Netlink.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
-Copyright (c) 2013, The Linux Foundation. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
- * Neither the name of The Linux Foundation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-/*!
- @file
- IPA_Netlink.h
-
- @brief
- IPACM Netlink Messaging Implementation File
-
- @Author
- Skylar Chang
-
-*/
-#ifndef IPACM_NETLINK_H
-#define IPACM_NETLINK_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <pthread.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-#include <linux/if.h>
-#include <linux/if_addr.h>
-#include <linux/rtnetlink.h>
-#include <linux/netlink.h>
-#include <netinet/in.h>
-#include "IPACM_Defs.h"
-
-#define MAX_NUM_OF_FD 10
-#define IPA_NL_MSG_MAX_LEN (2048)
-
-/*---------------------------------------------------------------------------
- Type representing enumeration of NetLink event indication messages
----------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
- Types representing parsed NetLink message
----------------------------------------------------------------------------*/
-#define IPA_NLA_PARAM_NONE (0x0000)
-#define IPA_NLA_PARAM_PREFIXADDR (0x0001)
-#define IPA_NLA_PARAM_LOCALADDR (0x0002)
-#define IPA_NLA_PARAM_LABELNAME (0x0004)
-#define IPA_NLA_PARAM_BCASTADDR (0x0008)
-#define IPA_NLA_PARAM_ACASTADDR (0x0010)
-#define IPA_NLA_PARAM_MCASTADDR (0x0020)
-#define IPA_NLA_PARAM_CACHEINFO (0x0080)
-#define IPA_NLA_PARAM_PROTOINFO (0x0100)
-#define IPA_NLA_PARAM_FLAGS (0x0200)
-
-#define IPA_RTA_PARAM_NONE (0x0000)
-#define IPA_RTA_PARAM_DST (0x0001)
-#define IPA_RTA_PARAM_SRC (0x0002)
-#define IPA_RTA_PARAM_GATEWAY (0x0004)
-#define IPA_RTA_PARAM_IIF (0x0008)
-#define IPA_RTA_PARAM_OIF (0x0010)
-#define IPA_RTA_PARAM_CACHEINFO (0x0020)
-#define IPA_RTA_PARAM_PRIORITY (0x0080)
-#define IPA_RTA_PARAM_METRICS (0x0100)
-
-
-/*---------------------------------------------------------------------------
- Type representing function callback registered with a socket listener
- thread for reading from a socket on receipt of an incoming message
----------------------------------------------------------------------------*/
-typedef int (*ipa_sock_thrd_fd_read_f)(int fd);
-
-typedef enum
-{
- IPA_INIT = 0,
- IPA_LINK_UP_WAIT,
- IPA_LINK_UP,
- IPA_LINK_DOWN_WAIT,
- IPA_LINK_DOWN
-} ipa_nl_state_e;
-
-typedef struct
-{
- int sk_fd;
- ipa_sock_thrd_fd_read_f read_func;
-} ipa_nl_sk_fd_map_info_t;
-
-typedef struct
-{
- ipa_nl_sk_fd_map_info_t sk_fds[MAX_NUM_OF_FD];
- fd_set fdset;
- int num_fd;
- int max_fd;
-} ipa_nl_sk_fd_set_info_t;
-
-typedef struct
-{
- int sk_fd; /* socket descriptor */
- struct sockaddr_nl sk_addr_loc; /* local address of socket */
-} ipa_nl_sk_info_t;
-
-typedef struct ipa_nl_addr_s {
- struct sockaddr_storage ip_addr;
- unsigned int mask;
-} ipa_nl_addr_t;
-
-typedef struct ipa_nl_proto_info_s {
- unsigned int param_mask;
- unsigned int flags;
- struct ifla_cacheinfo cache_info;
-} ipa_nl_proto_info_t;
-
-typedef struct
-{
- struct ifinfomsg metainfo; /* from header */
-} ipa_nl_link_info_t;
-
-
-
-typedef struct ipa_nl_addr_info_s {
- struct ifaddrmsg metainfo; /* from header */
- struct /* attributes */
- {
- unsigned int param_mask;
- unsigned char label_name[IF_NAME_LEN];
- struct sockaddr_storage prefix_addr;
- struct sockaddr_storage local_addr;
- struct sockaddr_storage bcast_addr;
- struct sockaddr_storage acast_addr;
- struct sockaddr_storage mcast_addr;
- } attr_info;
-} ipa_nl_addr_info_t;
-
-
-typedef struct ipa_nl_neigh_info_s {
- struct ndmsg metainfo; /* from header */
- struct /* attributes */
- {
- unsigned int param_mask;
- struct sockaddr_storage local_addr;
- struct sockaddr lladdr_hwaddr;
- } attr_info;
-} ipa_nl_neigh_info_t;
-
-
-
-typedef struct ipa_nl_route_info_s {
- struct rtmsg metainfo; /* from header */
- struct /* attributes */
- {
- unsigned int param_mask;
- struct sockaddr_storage dst_addr;
- struct sockaddr_storage src_addr;
- struct sockaddr_storage gateway_addr;
- struct sockaddr_storage mark_addr;
- struct rta_cacheinfo cache_info;
- __u32 iif_index; /* Link index */
- __u32 oif_index; /* Link index */
- __u32 priority;
- __u32 metrics;
- ipa_nl_proto_info_t proto_info;
- } attr_info;
-} ipa_nl_route_info_t;
-
-#define IPA_FLOW_TYPE_INVALID (-1)
-
-typedef struct
-{
- unsigned int type;
- bool link_event;
- /* Optional parameters */
- ipa_nl_link_info_t nl_link_info;
- ipa_nl_addr_info_t nl_addr_info;
- ipa_nl_neigh_info_t nl_neigh_info;
- ipa_nl_route_info_t nl_route_info;
-} ipa_nl_msg_t;
-
-/* Initialization routine for listener on NetLink sockets interface */
-int ipa_nl_listener_init
-(
- unsigned int nl_type,
- unsigned int nl_groups,
- ipa_nl_sk_fd_set_info_t *sk_fdset,
- ipa_sock_thrd_fd_read_f read_f
- );
-
-/* Virtual function registered to receive incoming messages over the NETLINK routing socket*/
-int ipa_nl_recv_msg(int fd);
-
-/* map mask value for ipv6 */
-int mask_v6(int index, uint32_t *mask);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* IPACM_NETLINK_H */