Print this page
3942 inject sanity into ipadm tcp buffer size properties
3943 _snd_lowat_fraction tcp tunable has no effect
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Peng Dai <peng.dai@delphix.com>
@@ -18,10 +18,11 @@
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
*/
/* Copyright (c) 1990 Mentat Inc. */
#include <sys/types.h>
#include <sys/stream.h>
@@ -90,11 +91,10 @@
* Plumbing notes:
* ICMP is always a device driver. For compatibility with mibopen() code
* it is possible to I_PUSH "icmp", but that results in pushing a passthrough
* dummy module.
*/
-
static void icmp_addr_req(queue_t *q, mblk_t *mp);
static void icmp_tpi_bind(queue_t *q, mblk_t *mp);
static void icmp_bind_proto(icmp_t *icmp);
static int icmp_build_hdr_template(conn_t *, const in6_addr_t *,
const in6_addr_t *, uint32_t);
@@ -211,10 +211,26 @@
T_CLTS, /* SERV_type. icmp supports connection-less. */
TS_UNBND, /* CURRENT_state. This is set from icmp_state. */
(XPG4_1|SENDZERO) /* PROVIDER_flag */
};
+static int
+icmp_set_buf_prop(netstack_t *stack, cred_t *cr, mod_prop_info_t *pinfo,
+ const char *ifname, const void *pval, uint_t flags)
+{
+ return (mod_set_buf_prop(stack->netstack_icmp->is_propinfo_tbl,
+ stack, cr, pinfo, ifname, pval, flags));
+}
+
+static int
+icmp_get_buf_prop(netstack_t *stack, mod_prop_info_t *pinfo, const char *ifname,
+ void *val, uint_t psize, uint_t flags)
+{
+ return (mod_get_buf_prop(stack->netstack_icmp->is_propinfo_tbl, stack,
+ pinfo, ifname, val, psize, flags));
+}
+
/*
* All of these are alterable, within the min/max values given, at run time.
*
* Note: All those tunables which do not start with "icmp_" are Committed and
* therefore are public. See PSARC 2010/080.
@@ -236,25 +252,25 @@
{ "_bsd_compat", MOD_PROTO_RAWIP,
mod_set_boolean, mod_get_boolean,
{B_TRUE}, {B_TRUE} },
- { "send_maxbuf", MOD_PROTO_RAWIP,
- mod_set_uint32, mod_get_uint32,
+ { "send_buf", MOD_PROTO_RAWIP,
+ icmp_set_buf_prop, icmp_get_buf_prop,
{4096, 65536, 8192}, {8192} },
{ "_xmit_lowat", MOD_PROTO_RAWIP,
mod_set_uint32, mod_get_uint32,
{0, 65536, 1024}, {1024} },
- { "recv_maxbuf", MOD_PROTO_RAWIP,
- mod_set_uint32, mod_get_uint32,
+ { "recv_buf", MOD_PROTO_RAWIP,
+ icmp_set_buf_prop, icmp_get_buf_prop,
{4096, 65536, 8192}, {8192} },
- { "_max_buf", MOD_PROTO_RAWIP,
+ { "max_buf", MOD_PROTO_RAWIP,
mod_set_uint32, mod_get_uint32,
- {65536, 1024*1024*1024, 256*1024}, {256 * 1024} },
+ {65536, ULP_MAX_BUF, 256*1024}, {256*1024} },
{ "_pmtu_discovery", MOD_PROTO_RAWIP,
mod_set_boolean, mod_get_boolean,
{B_FALSE}, {B_FALSE} },