152d2369aSRobert Mustacchi.\"
252d2369aSRobert Mustacchi.\" This file and its contents are supplied under the terms of the
352d2369aSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
452d2369aSRobert Mustacchi.\" You may only use this file in accordance with the terms of version
552d2369aSRobert Mustacchi.\" 1.0 of the CDDL.
652d2369aSRobert Mustacchi.\"
752d2369aSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
852d2369aSRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
952d2369aSRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
1052d2369aSRobert Mustacchi.\"
1152d2369aSRobert Mustacchi.\"
12*2c0ebdeeSRobert Mustacchi.\" Copyright (c) 2017, Joyent, Inc.
13*2c0ebdeeSRobert Mustacchi.\" Copyright 2022 Oxide Computer Company
1452d2369aSRobert Mustacchi.\"
15*2c0ebdeeSRobert Mustacchi.Dd July 2, 2022
1652d2369aSRobert Mustacchi.Dt MAC_TX_UPDATE 9F
1752d2369aSRobert Mustacchi.Os
1852d2369aSRobert Mustacchi.Sh NAME
19*2c0ebdeeSRobert Mustacchi.Nm mac_tx_update ,
20*2c0ebdeeSRobert Mustacchi.Nm mac_tx_ring_update
2152d2369aSRobert Mustacchi.Nd indicate that a device can transmit again
2252d2369aSRobert Mustacchi.Sh SYNOPSIS
2352d2369aSRobert Mustacchi.In sys/mac_provider.h
2452d2369aSRobert Mustacchi.Ft void
2552d2369aSRobert Mustacchi.Fo mac_tx_update
2652d2369aSRobert Mustacchi.Fa "mac_handle_t mh"
2752d2369aSRobert Mustacchi.Fc
28*2c0ebdeeSRobert Mustacchi.Ft void
29*2c0ebdeeSRobert Mustacchi.Fo mac_tx_ring_update
30*2c0ebdeeSRobert Mustacchi.Fa "mac_handle_t mh"
31*2c0ebdeeSRobert Mustacchi.Fa "mac_ring_handle_t mrh"
32*2c0ebdeeSRobert Mustacchi.Fc
3352d2369aSRobert Mustacchi.Sh INTERFACE LEVEL
3452d2369aSRobert Mustacchiillumos DDI specific
35*2c0ebdeeSRobert Mustacchi.Pp
36*2c0ebdeeSRobert MustacchiThe
37*2c0ebdeeSRobert Mustacchi.Fn mac_tx_ring_update
38*2c0ebdeeSRobert Mustacchifunction point is
39*2c0ebdeeSRobert Mustacchi.Sy Uncommitted -
40*2c0ebdeeSRobert MustacchiAPI and ABI stability is not guaranteed.
4152d2369aSRobert Mustacchi.Sh PARAMETERS
4252d2369aSRobert Mustacchi.Bl -tag -width Fa
4352d2369aSRobert Mustacchi.It Fa mh
4452d2369aSRobert MustacchiThe MAC handle obtained from a call to
4552d2369aSRobert Mustacchi.Xr mac_register 9F .
46*2c0ebdeeSRobert Mustacchi.It Fa mrh
47*2c0ebdeeSRobert MustacchiThe MAC ring handle obtained when the driver's ring entry point
48*2c0ebdeeSRobert Mustacchi.Xr mr_rget 9E
49*2c0ebdeeSRobert Mustacchiwas called.
5052d2369aSRobert Mustacchi.El
5152d2369aSRobert Mustacchi.Sh DESCRIPTION
5252d2369aSRobert MustacchiThe
5352d2369aSRobert Mustacchi.Fn mac_tx_update
5452d2369aSRobert Mustacchifunction is used by device drivers to indicate that the device
5552d2369aSRobert Mustacchirepresented by the handle
5652d2369aSRobert Mustacchi.Fa mh
5772d3dbb9SYuri Pankovcan transmit data again.
5872d3dbb9SYuri PankovIt should only be called after the device driver has returned data from its
5952d2369aSRobert Mustacchi.Xr mc_tx 9E
6072d3dbb9SYuri Pankovendpoint.
6172d3dbb9SYuri PankovFor more information on when this should be called, see both
6252d2369aSRobert Mustacchi.Xr mc_tx 9E
6352d2369aSRobert Mustacchiand the
6452d2369aSRobert Mustacchi.Sx Transmitting Data and Back Pressure
6552d2369aSRobert Mustacchisection of
6652d2369aSRobert Mustacchi.Xr mac 9E .
6752d2369aSRobert Mustacchi.Pp
6852d2369aSRobert MustacchiDevice drivers should not hold any of their own locks when calling into
6972d3dbb9SYuri Pankovthis function.
7072d3dbb9SYuri PankovSee the
7152d2369aSRobert Mustacchi.Sx MAC Callbacks
7252d2369aSRobert Mustacchisection of
7352d2369aSRobert Mustacchi.Xr mac 9E
7452d2369aSRobert Mustacchifor more information.
75*2c0ebdeeSRobert Mustacchi.Pp
76*2c0ebdeeSRobert MustacchiWhen a driver has negotiated the
77*2c0ebdeeSRobert Mustacchi.Dv MAC_CAPAB_RINGS
78*2c0ebdeeSRobert Mustacchicapability and indicated that it supports transmit groups, it must not
79*2c0ebdeeSRobert Mustacchiuse the
80*2c0ebdeeSRobert Mustacchi.Fn mac_tx_update
81*2c0ebdeeSRobert Mustacchifunction and should instead call the
82*2c0ebdeeSRobert Mustacchi.Fn mac_tx_ring_update
83*2c0ebdeeSRobert Mustacchifunction targeting a specific ring instead.
84*2c0ebdeeSRobert MustacchiThe ring that is being updated is specified by the ring handle passed in
85*2c0ebdeeSRobert Mustacchithe
86*2c0ebdeeSRobert Mustacchi.Fa mrh
87*2c0ebdeeSRobert Mustacchiargument.
88*2c0ebdeeSRobert MustacchiThe ring should have previously returned frames from its
89*2c0ebdeeSRobert Mustacchi.Xr mri_tx 9E
90*2c0ebdeeSRobert Mustacchientry point to indicate that it was blocked.
91*2c0ebdeeSRobert Mustacchi.Pp
92*2c0ebdeeSRobert MustacchiIn all other respects, the
93*2c0ebdeeSRobert Mustacchi.Fn mac_tx_ring_update
94*2c0ebdeeSRobert Mustacchifunction is similar to the
95*2c0ebdeeSRobert Mustacchi.Fn mac_tx_update
96*2c0ebdeeSRobert Mustacchifunction.
9752d2369aSRobert Mustacchi.Sh CONTEXT
9852d2369aSRobert MustacchiThe
9952d2369aSRobert Mustacchi.Fn mac_tx_update
10052d2369aSRobert Mustacchifunction may be called from
10152d2369aSRobert Mustacchi.Sy user ,
10252d2369aSRobert Mustacchi.Sy kernel ,
10352d2369aSRobert Mustacchior
10452d2369aSRobert Mustacchi.Sy interrupt
10552d2369aSRobert Mustacchicontext.
10652d2369aSRobert Mustacchi.Sh SEE ALSO
10752d2369aSRobert Mustacchi.Xr mac 9E ,
108*2c0ebdeeSRobert Mustacchi.Xr mac_capab_rings 9E ,
109b31ca922SChris Fraire.Xr mc_tx 9E ,
110*2c0ebdeeSRobert Mustacchi.Xr mr_rget 9E ,
111*2c0ebdeeSRobert Mustacchi.Xr mri_tx 9E ,
11252d2369aSRobert Mustacchi.Xr mac_register 9F
113