Print this page
%B
@@ -24,11 +24,11 @@
/*
* This file contains routines that are used to modify/retrieve protocol or
* interface property values. It also holds all the supported properties for
* both IP interface and protocols in `ipadm_prop_desc_t'. Following protocols
- * are supported: IP, IPv4, IPv6, TCP, SCTP, UDP and ICMP.
+ * are supported: IP, IPv4, IPv6, TCP, SCTP, UDP, ICMP and DCCP.
*
* This file also contains walkers, which walks through the property table and
* calls the callback function, of the form `ipadm_prop_wfunc_t' , for every
* property in the table.
*/
@@ -80,11 +80,11 @@
i_ipadm_set_ecnsack, i_ipadm_set_hostmodel;
/* array of protocols we support */
static int protocols[] = { MOD_PROTO_IP, MOD_PROTO_RAWIP,
MOD_PROTO_TCP, MOD_PROTO_UDP,
- MOD_PROTO_SCTP };
+ MOD_PROTO_SCTP, MOD_PROTO_DCCP };
/*
* Supported IP protocol properties.
*/
static ipadm_prop_desc_t ipadm_ip_prop_table[] = {
@@ -237,10 +237,34 @@
i_ipadm_set_prop, i_ipadm_get_prop, i_ipadm_get_prop },
{ NULL, 0, 0, 0, NULL, NULL, NULL }
};
+/* Supported DCCP protocol properties */
+static ipadm_prop_desc_t ipadm_dccp_prop_table[] = {
+ { "extra_priv_ports", IPADMPROP_CLASS_MODULE, MOD_PROTO_DCCP,
+ IPADMPROP_MULVAL, i_ipadm_set_eprivport, i_ipadm_get_prop,
+ i_ipadm_get_prop },
+
+ { "largest_anon_port", IPADMPROP_CLASS_MODULE, MOD_PROTO_DCCP, 0,
+ i_ipadm_set_prop, i_ipadm_get_prop, i_ipadm_get_prop },
+
+ { "recv_maxbuf", IPADMPROP_CLASS_MODULE, MOD_PROTO_DCCP, 0,
+ i_ipadm_set_prop, i_ipadm_get_prop, i_ipadm_get_prop },
+
+ { "send_maxbuf", IPADMPROP_CLASS_MODULE, MOD_PROTO_DCCP, 0,
+ i_ipadm_set_prop, i_ipadm_get_prop, i_ipadm_get_prop },
+
+ { "smallest_anon_port", IPADMPROP_CLASS_MODULE, MOD_PROTO_DCCP, 0,
+ i_ipadm_set_prop, i_ipadm_get_prop, i_ipadm_get_prop },
+
+ { "smallest_nonpriv_port", IPADMPROP_CLASS_MODULE, MOD_PROTO_DCCP, 0,
+ i_ipadm_set_prop, i_ipadm_get_prop, i_ipadm_get_prop },
+
+ { NULL, 0, 0, 0, NULL, NULL, NULL }
+};
+
/*
* A dummy private property structure, used while handling private
* protocol properties (properties not yet supported by libipadm).
*/
static ipadm_prop_desc_t ipadm_privprop =\
@@ -264,10 +288,12 @@
return (ipadm_tcp_prop_table);
case MOD_PROTO_UDP:
return (ipadm_udp_prop_table);
case MOD_PROTO_SCTP:
return (ipadm_sctp_prop_table);
+ case MOD_PROTO_DCCP:
+ return (ipadm_dccp_prop_table);
}
return (NULL);
}
@@ -318,10 +344,12 @@
return ("tcp");
case MOD_PROTO_UDP:
return ("udp");
case MOD_PROTO_SCTP:
return ("sctp");
+ case MOD_PROTO_DCCP:
+ return ("dccp");
}
return (NULL);
}
@@ -344,10 +372,12 @@
return (MOD_PROTO_RAWIP);
else if (strcmp(protostr, "sctp") == 0)
return (MOD_PROTO_SCTP);
else if (strcmp(protostr, "arp") == 0)
return (MOD_PROTO_IP);
+ else if (strcmp(protostr, "dccp") == 0)
+ return (MOD_PROTO_DCCP);
return (MOD_PROTO_NONE);
}
/* ARGSUSED */