linux/net/tipc/socket.h
<<
>>
Prefs
   1/* net/tipc/socket.h: Include file for TIPC socket code
   2 *
   3 * Copyright (c) 2014-2016, Ericsson AB
   4 * All rights reserved.
   5 *
   6 * Redistribution and use in source and binary forms, with or without
   7 * modification, are permitted provided that the following conditions are met:
   8 *
   9 * 1. Redistributions of source code must retain the above copyright
  10 *    notice, this list of conditions and the following disclaimer.
  11 * 2. Redistributions in binary form must reproduce the above copyright
  12 *    notice, this list of conditions and the following disclaimer in the
  13 *    documentation and/or other materials provided with the distribution.
  14 * 3. Neither the names of the copyright holders nor the names of its
  15 *    contributors may be used to endorse or promote products derived from
  16 *    this software without specific prior written permission.
  17 *
  18 * Alternatively, this software may be distributed under the terms of the
  19 * GNU General Public License ("GPL") version 2 as published by the Free
  20 * Software Foundation.
  21 *
  22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  32 * POSSIBILITY OF SUCH DAMAGE.
  33 */
  34
  35#ifndef _TIPC_SOCK_H
  36#define _TIPC_SOCK_H
  37
  38#include <net/sock.h>
  39#include <net/genetlink.h>
  40
  41/* Compatibility values for deprecated message based flow control */
  42#define FLOWCTL_MSG_WIN 512
  43#define FLOWCTL_MSG_LIM ((FLOWCTL_MSG_WIN * 2 + 1) * SKB_TRUESIZE(MAX_MSG_SIZE))
  44
  45#define FLOWCTL_BLK_SZ 1024
  46
  47/* Socket receive buffer sizes */
  48#define RCVBUF_MIN  (FLOWCTL_BLK_SZ * 512)
  49#define RCVBUF_DEF  (FLOWCTL_BLK_SZ * 1024 * 2)
  50#define RCVBUF_MAX  (FLOWCTL_BLK_SZ * 1024 * 16)
  51
  52struct tipc_sock;
  53
  54int tipc_socket_init(void);
  55void tipc_socket_stop(void);
  56void tipc_sk_rcv(struct net *net, struct sk_buff_head *inputq);
  57void tipc_sk_mcast_rcv(struct net *net, struct sk_buff_head *arrvq,
  58                       struct sk_buff_head *inputq);
  59void tipc_sk_reinit(struct net *net);
  60int tipc_sk_rht_init(struct net *net);
  61void tipc_sk_rht_destroy(struct net *net);
  62int tipc_nl_sk_dump(struct sk_buff *skb, struct netlink_callback *cb);
  63int tipc_nl_publ_dump(struct sk_buff *skb, struct netlink_callback *cb);
  64int tipc_sk_fill_sock_diag(struct sk_buff *skb, struct netlink_callback *cb,
  65                           struct tipc_sock *tsk, u32 sk_filter_state,
  66                           u64 (*tipc_diag_gen_cookie)(struct sock *sk));
  67int tipc_nl_sk_walk(struct sk_buff *skb, struct netlink_callback *cb,
  68                    int (*skb_handler)(struct sk_buff *skb,
  69                                       struct netlink_callback *cb,
  70                                       struct tipc_sock *tsk));
  71int tipc_dump_start(struct netlink_callback *cb);
  72int __tipc_dump_start(struct netlink_callback *cb, struct net *net);
  73int tipc_dump_done(struct netlink_callback *cb);
  74u32 tipc_sock_get_portid(struct sock *sk);
  75bool tipc_sk_overlimit1(struct sock *sk, struct sk_buff *skb);
  76bool tipc_sk_overlimit2(struct sock *sk, struct sk_buff *skb);
  77
  78#endif
  79