Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/bnxt/bnxt_sysctl.c
Show All 12 Lines | |||||
SYSCTL_ADD_U8(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_U8(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"chip_bond_id", CTLFLAG_RD, &vi->chip_bond_id, 0, | "chip_bond_id", CTLFLAG_RD, &vi->chip_bond_id, 0, | ||||
"chip bond id"); | "chip bond id"); | ||||
SYSCTL_ADD_STRING(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_STRING(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"chip_type", CTLFLAG_RD, vi->chip_type > MAX_CHIP_TYPE ? | "chip_type", CTLFLAG_RD, vi->chip_type > MAX_CHIP_TYPE ? | ||||
bnxt_chip_type[MAX_CHIP_TYPE] : bnxt_chip_type[vi->chip_type], 0, | bnxt_chip_type[MAX_CHIP_TYPE] : bnxt_chip_type[vi->chip_type], 0, | ||||
"RoCE firmware name"); | "RoCE firmware name"); | ||||
SYSCTL_ADD_PROC(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"package_ver", CTLTYPE_STRING|CTLFLAG_RD, softc, 0, | "package_ver", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
softc, 0, | |||||
bnxt_package_ver_sysctl, "A", | bnxt_package_ver_sysctl, "A", | ||||
"currently installed package version"); | "currently installed package version"); | ||||
SYSCTL_ADD_PROC(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"hwrm_min_ver", CTLTYPE_STRING|CTLFLAG_RWTUN, softc, 0, | "hwrm_min_ver", CTLTYPE_STRING | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, | |||||
bnxt_hwrm_min_ver_sysctl, "A", | bnxt_hwrm_min_ver_sysctl, "A", | ||||
"minimum hwrm API vesion to support"); | "minimum hwrm API vesion to support"); | ||||
return 0; | return 0; | ||||
} | } | ||||
int | int | ||||
bnxt_create_nvram_sysctls(struct bnxt_nvram_info *ni) | bnxt_create_nvram_sysctls(struct bnxt_nvram_info *ni) | ||||
Show All 24 Lines | |||||
bnxt_create_config_sysctls_pre(struct bnxt_softc *softc) | bnxt_create_config_sysctls_pre(struct bnxt_softc *softc) | ||||
{ | { | ||||
struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(softc->dev); | struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(softc->dev); | ||||
struct sysctl_oid_list *children; | struct sysctl_oid_list *children; | ||||
children = SYSCTL_CHILDREN(device_get_sysctl_tree(softc->dev));; | children = SYSCTL_CHILDREN(device_get_sysctl_tree(softc->dev));; | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "rss_key", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "rss_key", | ||||
CTLTYPE_STRING|CTLFLAG_RWTUN, softc, 0, bnxt_rss_key_sysctl, "A", | CTLTYPE_STRING | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, softc, 0, | ||||
bnxt_rss_key_sysctl, "A", | |||||
"RSS key"); | "RSS key"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "rss_type", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "rss_type", | ||||
CTLTYPE_STRING|CTLFLAG_RWTUN, softc, 0, bnxt_rss_type_sysctl, "A", | CTLTYPE_STRING | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, softc, 0, | ||||
bnxt_rss_type_sysctl, "A", | |||||
"RSS type bits"); | "RSS type bits"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "rx_stall", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "rx_stall", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_rx_stall_sysctl, "I", | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, softc, 0, | ||||
bnxt_rx_stall_sysctl, "I", | |||||
"buffer rx packets in hardware until the host posts new buffers"); | "buffer rx packets in hardware until the host posts new buffers"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "vlan_strip", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "vlan_strip", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_vlan_strip_sysctl, "I", | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, softc, 0, | ||||
bnxt_vlan_strip_sysctl, "I", | |||||
"strip VLAN tag in the RX path"); | "strip VLAN tag in the RX path"); | ||||
SYSCTL_ADD_STRING(ctx, children, OID_AUTO, "if_name", CTLFLAG_RD, | SYSCTL_ADD_STRING(ctx, children, OID_AUTO, "if_name", CTLFLAG_RD, | ||||
iflib_get_ifp(softc->ctx)->if_xname, 0, "interface name"); | iflib_get_ifp(softc->ctx)->if_xname, 0, "interface name"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_usecs", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_usecs", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_rx_usecs, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_rx_usecs, | |||||
"I", "interrupt coalescing Rx Usecs"); | "I", "interrupt coalescing Rx Usecs"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_frames", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_frames", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_rx_frames, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_rx_frames, | |||||
"I", "interrupt coalescing Rx Frames"); | "I", "interrupt coalescing Rx Frames"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_usecs_irq", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_usecs_irq", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_rx_usecs_irq, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_rx_usecs_irq, | |||||
"I", "interrupt coalescing Rx Usecs IRQ"); | "I", "interrupt coalescing Rx Usecs IRQ"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_frames_irq", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_rx_frames_irq", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_rx_frames_irq, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_rx_frames_irq, | |||||
"I", "interrupt coalescing Rx Frames IRQ"); | "I", "interrupt coalescing Rx Frames IRQ"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_usecs", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_usecs", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_tx_usecs, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_tx_usecs, | |||||
"I", "interrupt coalescing Tx Usces"); | "I", "interrupt coalescing Tx Usces"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_frames", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_frames", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_tx_frames, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_tx_frames, | |||||
"I", "interrupt coalescing Tx Frames"); | "I", "interrupt coalescing Tx Frames"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_usecs_irq", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_usecs_irq", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_tx_usecs_irq, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_tx_usecs_irq, | |||||
"I", "interrupt coalescing Tx Usecs IRQ"); | "I", "interrupt coalescing Tx Usecs IRQ"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_frames_irq", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal_tx_frames_irq", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_set_coal_tx_frames_irq, | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, bnxt_set_coal_tx_frames_irq, | |||||
"I", "interrupt coalescing Tx Frames IRQ"); | "I", "interrupt coalescing Tx Frames IRQ"); | ||||
return 0; | return 0; | ||||
} | } | ||||
#define BNXT_HW_LRO_FN(fn_name, arg) \ | #define BNXT_HW_LRO_FN(fn_name, arg) \ | ||||
static int \ | static int \ | ||||
fn_name(SYSCTL_HANDLER_ARGS) { \ | fn_name(SYSCTL_HANDLER_ARGS) { \ | ||||
Show All 24 Lines | |||||
bnxt_create_pause_fc_sysctls(struct bnxt_softc *softc) | bnxt_create_pause_fc_sysctls(struct bnxt_softc *softc) | ||||
{ | { | ||||
struct sysctl_oid *oid = softc->flow_ctrl_oid; | struct sysctl_oid *oid = softc->flow_ctrl_oid; | ||||
if (!oid) | if (!oid) | ||||
return ENOMEM; | return ENOMEM; | ||||
SYSCTL_ADD_PROC(&softc->flow_ctrl_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->flow_ctrl_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"tx", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "tx", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, | |||||
bnxt_flow_ctrl_tx, "A", | bnxt_flow_ctrl_tx, "A", | ||||
"Enable or Disable Tx Flow Ctrl: 0 / 1"); | "Enable or Disable Tx Flow Ctrl: 0 / 1"); | ||||
SYSCTL_ADD_PROC(&softc->flow_ctrl_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->flow_ctrl_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"rx", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "rx", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | ||||
softc, 0, | |||||
bnxt_flow_ctrl_rx, "A", | bnxt_flow_ctrl_rx, "A", | ||||
"Enable or Disable Tx Flow Ctrl: 0 / 1"); | "Enable or Disable Tx Flow Ctrl: 0 / 1"); | ||||
SYSCTL_ADD_PROC(&softc->flow_ctrl_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->flow_ctrl_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"autoneg", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "autoneg", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | |||||
softc, 0, | |||||
bnxt_flow_ctrl_autoneg, "A", | bnxt_flow_ctrl_autoneg, "A", | ||||
"Enable or Disable Autoneg Flow Ctrl: 0 / 1"); | "Enable or Disable Autoneg Flow Ctrl: 0 / 1"); | ||||
return 0; | return 0; | ||||
} | } | ||||
int | int | ||||
bnxt_create_hw_lro_sysctls(struct bnxt_softc *softc) | bnxt_create_hw_lro_sysctls(struct bnxt_softc *softc) | ||||
{ | { | ||||
struct sysctl_oid *oid = softc->hw_lro_oid; | struct sysctl_oid *oid = softc->hw_lro_oid; | ||||
if (!oid) | if (!oid) | ||||
return ENOMEM; | return ENOMEM; | ||||
SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"enable", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "enable", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | |||||
softc, 0, | |||||
bnxt_hw_lro_enable_disable, "A", | bnxt_hw_lro_enable_disable, "A", | ||||
"Enable or Disable HW LRO: 0 / 1"); | "Enable or Disable HW LRO: 0 / 1"); | ||||
SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"gro_mode", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "gro_mode", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | |||||
softc, 0, | |||||
bnxt_hw_lro_set_mode, "A", | bnxt_hw_lro_set_mode, "A", | ||||
"Set mode: 1 = GRO mode, 0 = RSC mode"); | "Set mode: 1 = GRO mode, 0 = RSC mode"); | ||||
SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"max_agg_segs", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "max_agg_segs", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | |||||
softc, 0, | |||||
bnxt_hw_lro_set_max_agg_segs, "A", | bnxt_hw_lro_set_max_agg_segs, "A", | ||||
"Set Max Agg Seg Value (unit is Log2): " | "Set Max Agg Seg Value (unit is Log2): " | ||||
"0 (= 1 seg) / 1 (= 2 segs) / ... / 31 (= 2^31 segs)"); | "0 (= 1 seg) / 1 (= 2 segs) / ... / 31 (= 2^31 segs)"); | ||||
SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"max_aggs", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "max_aggs", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | |||||
softc, 0, | |||||
bnxt_hw_lro_set_max_aggs, "A", | bnxt_hw_lro_set_max_aggs, "A", | ||||
"Set Max Aggs Value (unit is Log2): " | "Set Max Aggs Value (unit is Log2): " | ||||
"0 (= 1 agg) / 1 (= 2 aggs) / ... / 7 (= 2^7 segs)"); | "0 (= 1 agg) / 1 (= 2 aggs) / ... / 7 (= 2^7 segs)"); | ||||
SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(&softc->hw_lro_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"min_agg_len", CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, | "min_agg_len", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, | |||||
softc, 0, | |||||
bnxt_hw_lro_set_min_agg_len, "A", | bnxt_hw_lro_set_min_agg_len, "A", | ||||
"Min Agg Len: 1 to 9000"); | "Min Agg Len: 1 to 9000"); | ||||
return 0; | return 0; | ||||
} | } | ||||
static int | static int | ||||
bnxt_vlan_only_sysctl(SYSCTL_HANDLER_ARGS) { | bnxt_vlan_only_sysctl(SYSCTL_HANDLER_ARGS) { | ||||
struct bnxt_softc *softc = arg1; | struct bnxt_softc *softc = arg1; | ||||
Show All 24 Lines | |||||
bnxt_create_config_sysctls_post(struct bnxt_softc *softc) | bnxt_create_config_sysctls_post(struct bnxt_softc *softc) | ||||
{ | { | ||||
struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(softc->dev); | struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(softc->dev); | ||||
struct sysctl_oid_list *children; | struct sysctl_oid_list *children; | ||||
children = SYSCTL_CHILDREN(device_get_sysctl_tree(softc->dev));; | children = SYSCTL_CHILDREN(device_get_sysctl_tree(softc->dev));; | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "vlan_only", | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "vlan_only", | ||||
CTLTYPE_INT|CTLFLAG_RWTUN, softc, 0, bnxt_vlan_only_sysctl, "I", | CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, softc, 0, | ||||
bnxt_vlan_only_sysctl, "I", | |||||
"require vlan tag on received packets when vlan is enabled"); | "require vlan tag on received packets when vlan is enabled"); | ||||
return 0; | return 0; | ||||
} | } | ||||
Context not available. |