summaryrefslogtreecommitdiffstats
path: root/net/ncsi/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/ncsi/internal.h')
-rw-r--r--net/ncsi/internal.h34
1 files changed, 15 insertions, 19 deletions
diff --git a/net/ncsi/internal.h b/net/ncsi/internal.h
index 8da84312cd3b..8055e3965cef 100644
--- a/net/ncsi/internal.h
+++ b/net/ncsi/internal.h
@@ -68,15 +68,6 @@ enum {
68 NCSI_MODE_MAX 68 NCSI_MODE_MAX
69}; 69};
70 70
71enum {
72 NCSI_FILTER_BASE = 0,
73 NCSI_FILTER_VLAN = 0,
74 NCSI_FILTER_UC,
75 NCSI_FILTER_MC,
76 NCSI_FILTER_MIXED,
77 NCSI_FILTER_MAX
78};
79
80struct ncsi_channel_version { 71struct ncsi_channel_version {
81 u32 version; /* Supported BCD encoded NCSI version */ 72 u32 version; /* Supported BCD encoded NCSI version */
82 u32 alpha2; /* Supported BCD encoded NCSI version */ 73 u32 alpha2; /* Supported BCD encoded NCSI version */
@@ -98,11 +89,18 @@ struct ncsi_channel_mode {
98 u32 data[8]; /* Data entries */ 89 u32 data[8]; /* Data entries */
99}; 90};
100 91
101struct ncsi_channel_filter { 92struct ncsi_channel_mac_filter {
102 u32 index; /* Index of channel filters */ 93 u8 n_uc;
103 u32 total; /* Total entries in the filter table */ 94 u8 n_mc;
104 u64 bitmap; /* Bitmap of valid entries */ 95 u8 n_mixed;
105 u32 data[]; /* Data for the valid entries */ 96 u64 bitmap;
97 unsigned char *addrs;
98};
99
100struct ncsi_channel_vlan_filter {
101 u8 n_vids;
102 u64 bitmap;
103 u16 *vids;
106}; 104};
107 105
108struct ncsi_channel_stats { 106struct ncsi_channel_stats {
@@ -186,7 +184,9 @@ struct ncsi_channel {
186 struct ncsi_channel_version version; 184 struct ncsi_channel_version version;
187 struct ncsi_channel_cap caps[NCSI_CAP_MAX]; 185 struct ncsi_channel_cap caps[NCSI_CAP_MAX];
188 struct ncsi_channel_mode modes[NCSI_MODE_MAX]; 186 struct ncsi_channel_mode modes[NCSI_MODE_MAX];
189 struct ncsi_channel_filter *filters[NCSI_FILTER_MAX]; 187 /* Filtering Settings */
188 struct ncsi_channel_mac_filter mac_filter;
189 struct ncsi_channel_vlan_filter vlan_filter;
190 struct ncsi_channel_stats stats; 190 struct ncsi_channel_stats stats;
191 struct { 191 struct {
192 struct timer_list timer; 192 struct timer_list timer;
@@ -320,10 +320,6 @@ extern spinlock_t ncsi_dev_lock;
320 list_for_each_entry_rcu(nc, &np->channels, node) 320 list_for_each_entry_rcu(nc, &np->channels, node)
321 321
322/* Resources */ 322/* Resources */
323u32 *ncsi_get_filter(struct ncsi_channel *nc, int table, int index);
324int ncsi_find_filter(struct ncsi_channel *nc, int table, void *data);
325int ncsi_add_filter(struct ncsi_channel *nc, int table, void *data);
326int ncsi_remove_filter(struct ncsi_channel *nc, int table, int index);
327void ncsi_start_channel_monitor(struct ncsi_channel *nc); 323void ncsi_start_channel_monitor(struct ncsi_channel *nc);
328void ncsi_stop_channel_monitor(struct ncsi_channel *nc); 324void ncsi_stop_channel_monitor(struct ncsi_channel *nc);
329struct ncsi_channel *ncsi_find_channel(struct ncsi_package *np, 325struct ncsi_channel *ncsi_find_channel(struct ncsi_package *np,