xref: /illumos-gate/usr/src/test/bhyve-tests/tests/viona/viona_suite.c (revision ce489a5e0a9c618cd26b66d6b1fd397d8545db9b)
1*ce489a5eSPatrick Mooney /*
2*ce489a5eSPatrick Mooney  * This file and its contents are supplied under the terms of the
3*ce489a5eSPatrick Mooney  * Common Development and Distribution License ("CDDL"), version 1.0.
4*ce489a5eSPatrick Mooney  * You may only use this file in accordance with the terms of version
5*ce489a5eSPatrick Mooney  * 1.0 of the CDDL.
6*ce489a5eSPatrick Mooney  *
7*ce489a5eSPatrick Mooney  * A full copy of the text of the CDDL should have accompanied this
8*ce489a5eSPatrick Mooney  * source.  A copy of the CDDL is also available via the Internet at
9*ce489a5eSPatrick Mooney  * http://www.illumos.org/license/CDDL.
10*ce489a5eSPatrick Mooney  */
11*ce489a5eSPatrick Mooney 
12*ce489a5eSPatrick Mooney /*
13*ce489a5eSPatrick Mooney  * Copyright 2024 Oxide Computer Company
14*ce489a5eSPatrick Mooney  */
15*ce489a5eSPatrick Mooney 
16*ce489a5eSPatrick Mooney #include <fcntl.h>
17*ce489a5eSPatrick Mooney #include <libdladm.h>
18*ce489a5eSPatrick Mooney #include <libdllink.h>
19*ce489a5eSPatrick Mooney 
20*ce489a5eSPatrick Mooney #include "viona_suite.h"
21*ce489a5eSPatrick Mooney 
22*ce489a5eSPatrick Mooney int
open_viona(void)23*ce489a5eSPatrick Mooney open_viona(void)
24*ce489a5eSPatrick Mooney {
25*ce489a5eSPatrick Mooney 	return (open(VIONA_DEV, O_RDWR));
26*ce489a5eSPatrick Mooney }
27*ce489a5eSPatrick Mooney 
28*ce489a5eSPatrick Mooney /* Convenience helper to get datalink_id_t from an interface name */
29*ce489a5eSPatrick Mooney dladm_status_t
query_dlid(const char * name,datalink_id_t * dlid)30*ce489a5eSPatrick Mooney query_dlid(const char *name, datalink_id_t *dlid)
31*ce489a5eSPatrick Mooney {
32*ce489a5eSPatrick Mooney 	dladm_handle_t hdl;
33*ce489a5eSPatrick Mooney 	dladm_status_t err;
34*ce489a5eSPatrick Mooney 
35*ce489a5eSPatrick Mooney 	err = dladm_open(&hdl);
36*ce489a5eSPatrick Mooney 	if (err != DLADM_STATUS_OK) {
37*ce489a5eSPatrick Mooney 		dladm_close(hdl);
38*ce489a5eSPatrick Mooney 		return (err);
39*ce489a5eSPatrick Mooney 	}
40*ce489a5eSPatrick Mooney 
41*ce489a5eSPatrick Mooney 	err = dladm_name2info(hdl, name, dlid, NULL, NULL, NULL);
42*ce489a5eSPatrick Mooney 	dladm_close(hdl);
43*ce489a5eSPatrick Mooney 
44*ce489a5eSPatrick Mooney 	return (err);
45*ce489a5eSPatrick Mooney }
46