Home | History | Annotate | Line # | Download | only in net
rss_config.c revision 1.1.2.2
      1  1.1.2.2  snj /*	$NetBSD: rss_config.c,v 1.1.2.2 2018/02/26 00:25:16 snj Exp $  */
      2  1.1.2.2  snj 
      3  1.1.2.2  snj /*
      4  1.1.2.2  snj  * Copyright (c) 2018 Internet Initiative Japan Inc.
      5  1.1.2.2  snj  * All rights reserved.
      6  1.1.2.2  snj  *
      7  1.1.2.2  snj  * Redistribution and use in source and binary forms, with or without
      8  1.1.2.2  snj  * modification, are permitted provided that the following conditions
      9  1.1.2.2  snj  * are met:
     10  1.1.2.2  snj  * 1. Redistributions of source code must retain the above copyright
     11  1.1.2.2  snj  *    notice, this list of conditions and the following disclaimer.
     12  1.1.2.2  snj  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1.2.2  snj  *    notice, this list of conditions and the following disclaimer in the
     14  1.1.2.2  snj  *    documentation and/or other materials provided with the distribution.
     15  1.1.2.2  snj  *
     16  1.1.2.2  snj  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     17  1.1.2.2  snj  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     18  1.1.2.2  snj  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     19  1.1.2.2  snj  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     20  1.1.2.2  snj  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     21  1.1.2.2  snj  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     22  1.1.2.2  snj  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     23  1.1.2.2  snj  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     24  1.1.2.2  snj  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     25  1.1.2.2  snj  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     26  1.1.2.2  snj  * POSSIBILITY OF SUCH DAMAGE.
     27  1.1.2.2  snj  */
     28  1.1.2.2  snj 
     29  1.1.2.2  snj #include <sys/cdefs.h>
     30  1.1.2.2  snj __KERNEL_RCSID(0, "$NetBSD: rss_config.c,v 1.1.2.2 2018/02/26 00:25:16 snj Exp $");
     31  1.1.2.2  snj 
     32  1.1.2.2  snj #include <sys/param.h>
     33  1.1.2.2  snj #include <sys/systm.h>
     34  1.1.2.2  snj #include <sys/kernel.h>
     35  1.1.2.2  snj 
     36  1.1.2.2  snj #include <net/rss_config.h>
     37  1.1.2.2  snj 
     38  1.1.2.2  snj /*
     39  1.1.2.2  snj  * Same as FreeBSD.
     40  1.1.2.2  snj  *
     41  1.1.2.2  snj  * This rss key is assumed for verification suite in many intel Gigabit and
     42  1.1.2.2  snj  * 10 Gigabit Controller specifications.
     43  1.1.2.2  snj  */
     44  1.1.2.2  snj static uint8_t rss_default_key[RSS_KEYSIZE] = {
     45  1.1.2.2  snj 	0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
     46  1.1.2.2  snj 	0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
     47  1.1.2.2  snj 	0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
     48  1.1.2.2  snj 	0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
     49  1.1.2.2  snj 	0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa,
     50  1.1.2.2  snj };
     51  1.1.2.2  snj 
     52  1.1.2.2  snj #ifdef NOTYET
     53  1.1.2.2  snj /*
     54  1.1.2.2  snj  * Same as DragonFlyBSD.
     55  1.1.2.2  snj  *
     56  1.1.2.2  snj  * This rss key make rss hash value symmetric, that is, the hash value
     57  1.1.2.2  snj  * calculated by func("source address", "destination address") equals to
     58  1.1.2.2  snj  * the hash value calculated by func("destination address", "source address").
     59  1.1.2.2  snj  */
     60  1.1.2.2  snj static uint8_t rss_symmetric_key[RSS_KEYSIZE] = {
     61  1.1.2.2  snj 	0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a,
     62  1.1.2.2  snj 	0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a,
     63  1.1.2.2  snj 	0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a,
     64  1.1.2.2  snj 	0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a, 0x6d, 0x5a,
     65  1.1.2.2  snj };
     66  1.1.2.2  snj #endif
     67  1.1.2.2  snj 
     68  1.1.2.2  snj /*
     69  1.1.2.2  snj  * sizeof(key) must be more than or equal to RSS_KEYSIZE.
     70  1.1.2.2  snj  */
     71  1.1.2.2  snj void
     72  1.1.2.2  snj rss_getkey(uint8_t *key)
     73  1.1.2.2  snj {
     74  1.1.2.2  snj 
     75  1.1.2.2  snj 	memcpy(key, rss_default_key, sizeof(rss_default_key));
     76  1.1.2.2  snj }
     77