FreeBSD kernel IPv4 code
in_rss.h
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 2010-2011 Juniper Networks, Inc.
3
* All rights reserved.
4
*
5
* This software was developed by Robert N. M. Watson under contract
6
* to Juniper Networks, Inc.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
* 1. Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* $FreeBSD$
30
*/
31
32
#ifndef _NETINET_IN_RSS_H_
33
#define _NETINET_IN_RSS_H_
34
35
#include <
netinet/in.h
>
/* in_addr_t */
36
37
/*
38
* Network stack interface to generate a hash for a protocol tuple.
39
*/
40
uint32_t
rss_hash_ip4_4tuple
(
struct
in_addr
src, u_short srcport,
41
struct
in_addr
dst, u_short dstport);
42
uint32_t
rss_hash_ip4_2tuple
(
struct
in_addr
src,
struct
in_addr
dst);
43
44
/*
45
* Functions to calculate a software RSS hash for a given mbuf or
46
* packet detail.
47
*/
48
int
rss_mbuf_software_hash_v4
(
const
struct
mbuf *m,
int
dir,
49
uint32_t
*hashval,
uint32_t
*hashtype);
50
int
rss_proto_software_hash_v4
(
struct
in_addr
src,
51
struct
in_addr
dst, u_short src_port, u_short dst_port,
52
int
proto,
uint32_t
*hashval,
53
uint32_t
*hashtype);
54
struct
mbuf *
rss_soft_m2cpuid_v4
(
struct
mbuf *m, uintptr_t source,
55
u_int *cpuid);
56
uint32_t
xps_proto_software_hash_v4
(
struct
in_addr
s,
struct
in_addr
d,
57
u_short sp, u_short dp,
int
proto,
uint32_t
*hashtype);
58
59
#endif
/* !_NETINET_IN_RSS_H_ */
in.h
uint32_t
__uint32_t uint32_t
Definition:
in.h:62
rss_hash_ip4_2tuple
uint32_t rss_hash_ip4_2tuple(struct in_addr src, struct in_addr dst)
Definition:
in_rss.c:64
rss_mbuf_software_hash_v4
int rss_mbuf_software_hash_v4(const struct mbuf *m, int dir, uint32_t *hashval, uint32_t *hashtype)
Definition:
in_rss.c:207
rss_proto_software_hash_v4
int rss_proto_software_hash_v4(struct in_addr src, struct in_addr dst, u_short src_port, u_short dst_port, int proto, uint32_t *hashval, uint32_t *hashtype)
Definition:
in_rss.c:114
xps_proto_software_hash_v4
uint32_t xps_proto_software_hash_v4(struct in_addr s, struct in_addr d, u_short sp, u_short dp, int proto, uint32_t *hashtype)
Definition:
in_rss.c:161
rss_soft_m2cpuid_v4
struct mbuf * rss_soft_m2cpuid_v4(struct mbuf *m, uintptr_t source, u_int *cpuid)
Definition:
in_rss.c:372
rss_hash_ip4_4tuple
uint32_t rss_hash_ip4_4tuple(struct in_addr src, u_short srcport, struct in_addr dst, u_short dstport)
Definition:
in_rss.c:81
in_addr
Definition:
in.h:83
netinet
in_rss.h
Generated by
1.9.3