File Index
Files and directories
Sign in
FILE

hinic3_nic_cfg.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/huawei/hinic3/hinic3_nic_cfg.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved. */
 3
 4#ifndef _HINIC3_NIC_CFG_H_
 5#define _HINIC3_NIC_CFG_H_
 6
 7#include <linux/types.h>
 8
 9#include "hinic3_hw_intf.h"
10#include "hinic3_mgmt_interface.h"
11
12struct hinic3_hwdev;
13struct hinic3_nic_dev;
14
15#define HINIC3_MIN_MTU_SIZE          256
16#define HINIC3_MAX_JUMBO_FRAME_SIZE  9600
17
18#define HINIC3_VLAN_ID_MASK          0x7FFF
19
20enum hinic3_nic_event_type {
21	HINIC3_NIC_EVENT_LINK_DOWN = 0,
22	HINIC3_NIC_EVENT_LINK_UP   = 1,
23};
24
25struct hinic3_sq_attr {
26	u8  dma_attr_off;
27	u8  pending_limit;
28	u8  coalescing_time;
29	u8  intr_en;
30	u16 intr_idx;
31	u32 l2nic_sqn;
32	u64 ci_dma_base;
33};
34
35int hinic3_get_nic_feature_from_hw(struct hinic3_nic_dev *nic_dev);
36int hinic3_set_nic_feature_to_hw(struct hinic3_nic_dev *nic_dev);
37bool hinic3_test_support(struct hinic3_nic_dev *nic_dev,
38			 enum hinic3_nic_feature_cap feature_bits);
39void hinic3_update_nic_feature(struct hinic3_nic_dev *nic_dev, u64 feature_cap);
40
41int hinic3_init_function_table(struct hinic3_nic_dev *nic_dev);
42int hinic3_set_port_mtu(struct net_device *netdev, u16 new_mtu);
43
44int hinic3_set_mac(struct hinic3_hwdev *hwdev, const u8 *mac_addr, u16 vlan_id,
45		   u16 func_id);
46int hinic3_del_mac(struct hinic3_hwdev *hwdev, const u8 *mac_addr, u16 vlan_id,
47		   u16 func_id);
48int hinic3_update_mac(struct hinic3_hwdev *hwdev, const u8 *old_mac,
49		      u8 *new_mac, u16 vlan_id, u16 func_id);
50
51int hinic3_set_ci_table(struct hinic3_hwdev *hwdev,
52			struct hinic3_sq_attr *attr);
53int hinic3_flush_qps_res(struct hinic3_hwdev *hwdev);
54int hinic3_force_drop_tx_pkt(struct hinic3_hwdev *hwdev);
55
56int hinic3_sync_dcb_state(struct hinic3_hwdev *hwdev, u8 op_code, u8 state);
57int hinic3_get_link_status(struct hinic3_hwdev *hwdev, bool *link_status_up);
58int hinic3_set_vport_enable(struct hinic3_hwdev *hwdev, u16 func_id,
59			    bool enable);
60
61#endif
~/ Read-only file preview.