summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdladm/common/libdlmgmt.c
diff options
context:
space:
mode:
authorArtem Kachitchkine <Artem.Kachitchkin@Sun.COM>2008-12-26 16:52:57 -0800
committerArtem Kachitchkine <Artem.Kachitchkin@Sun.COM>2008-12-26 16:52:57 -0800
commit62ee1d25bffb3d6d74798efe1199f7e86a29a14e (patch)
treef49f1a15b5832247208e7b448efb94910c0e0951 /usr/src/lib/libdladm/common/libdlmgmt.c
parent5c066ec28ea93f3a7c93082611a61747f255290a (diff)
downloadillumos-joyent-62ee1d25bffb3d6d74798efe1199f7e86a29a14e.tar.gz
6688428 dladm init-linkprop ignores private properties
Diffstat (limited to 'usr/src/lib/libdladm/common/libdlmgmt.c')
-rw-r--r--usr/src/lib/libdladm/common/libdlmgmt.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/usr/src/lib/libdladm/common/libdlmgmt.c b/usr/src/lib/libdladm/common/libdlmgmt.c
index 611c693579..39140917de 100644
--- a/usr/src/lib/libdladm/common/libdlmgmt.c
+++ b/usr/src/lib/libdladm/common/libdlmgmt.c
@@ -382,6 +382,42 @@ dladm_get_conf_field(dladm_handle_t handle, dladm_conf_t conf, const char *attr,
}
/*
+ * Get next property attribute from data link configuration repository.
+ */
+dladm_status_t
+dladm_getnext_conf_linkprop(dladm_handle_t handle, dladm_conf_t conf,
+ const char *last_attr, char *attr, void *attrval, size_t attrsz,
+ size_t *attrszp)
+{
+ dlmgmt_door_linkprop_getnext_t getnext;
+ dlmgmt_linkprop_getnext_retval_t retval;
+ dladm_status_t status;
+
+ if (conf == DLADM_INVALID_CONF || attrval == NULL ||
+ attrsz == 0 || attr == NULL) {
+ return (DLADM_STATUS_BADARG);
+ }
+
+ getnext.ld_cmd = DLMGMT_CMD_LINKPROP_GETNEXT;
+ getnext.ld_conf = conf;
+ (void) strlcpy(getnext.ld_last_attr, last_attr, MAXLINKATTRLEN);
+
+ if ((status = dladm_door_call(handle, &getnext, sizeof (getnext),
+ &retval, sizeof (retval))) != DLADM_STATUS_OK) {
+ return (status);
+ }
+
+ *attrszp = retval.lr_attrsz;
+ if (retval.lr_attrsz > attrsz) {
+ return (DLADM_STATUS_TOOSMALL);
+ }
+
+ (void) strlcpy(attr, retval.lr_attr, MAXLINKATTRLEN);
+ bcopy(retval.lr_attrval, attrval, retval.lr_attrsz);
+ return (DLADM_STATUS_OK);
+}
+
+/*
* Get the link ID that is associated with the given name.
*/
dladm_status_t