linux/include/rdma/iw_portmap.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
   2/*
   3 * Copyright (c) 2014 Intel Corporation. All rights reserved.
   4 * Copyright (c) 2014 Chelsio, Inc. All rights reserved.
   5 */
   6
   7#ifndef _IW_PORTMAP_H
   8#define _IW_PORTMAP_H
   9
  10#include <linux/socket.h>
  11#include <linux/netlink.h>
  12
  13#define IWPM_ULIBNAME_SIZE      32
  14#define IWPM_DEVNAME_SIZE       32
  15#define IWPM_IFNAME_SIZE        16
  16#define IWPM_IPADDR_SIZE        16
  17
  18enum {
  19        IWPM_INVALID_NLMSG_ERR = 10,
  20        IWPM_CREATE_MAPPING_ERR,
  21        IWPM_DUPLICATE_MAPPING_ERR,
  22        IWPM_UNKNOWN_MAPPING_ERR,
  23        IWPM_CLIENT_DEV_INFO_ERR,
  24        IWPM_USER_LIB_INFO_ERR,
  25        IWPM_REMOTE_QUERY_REJECT
  26};
  27
  28struct iwpm_dev_data {
  29        char dev_name[IWPM_DEVNAME_SIZE];
  30        char if_name[IWPM_IFNAME_SIZE];
  31};
  32
  33struct iwpm_sa_data {
  34        struct sockaddr_storage loc_addr;
  35        struct sockaddr_storage mapped_loc_addr;
  36        struct sockaddr_storage rem_addr;
  37        struct sockaddr_storage mapped_rem_addr;
  38        u32 flags;
  39};
  40
  41int iwpm_init(u8);
  42int iwpm_exit(u8);
  43int iwpm_valid_pid(void);
  44int iwpm_register_pid(struct iwpm_dev_data *pm_msg, u8 nl_client);
  45int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client);
  46int iwpm_add_and_query_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client);
  47int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client);
  48int iwpm_register_pid_cb(struct sk_buff *, struct netlink_callback *);
  49int iwpm_add_mapping_cb(struct sk_buff *, struct netlink_callback *);
  50int iwpm_add_and_query_mapping_cb(struct sk_buff *, struct netlink_callback *);
  51int iwpm_remote_info_cb(struct sk_buff *, struct netlink_callback *);
  52int iwpm_mapping_error_cb(struct sk_buff *, struct netlink_callback *);
  53int iwpm_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
  54int iwpm_ack_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
  55int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr,
  56                        struct sockaddr_storage *mapped_rem_addr,
  57                        struct sockaddr_storage *remote_addr, u8 nl_client);
  58int iwpm_create_mapinfo(struct sockaddr_storage *local_addr,
  59                        struct sockaddr_storage *mapped_addr, u8 nl_client,
  60                        u32 map_flags);
  61int iwpm_remove_mapinfo(struct sockaddr_storage *local_addr,
  62                        struct sockaddr_storage *mapped_addr);
  63
  64int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb);
  65#endif /* _IW_PORTMAP_H */
  66