Lines Matching +full:device +full:- +full:handle

2 # SPDX-License-Identifier: GPL-2.0
10 def get_shapers(cfg, nl_shaper) -> None:
15 raise KsftSkipEx("shapers not supported by the device")
21 def get_caps(cfg, nl_shaper) -> None:
26 raise KsftSkipEx("shapers not supported by the device")
29 # Each device implementing shaper support must support some
33 def set_qshapers(cfg, nl_shaper) -> None:
39 raise KsftSkipEx("shapers not supported by the device")
41 if not 'support-bw-max' in caps or not 'support-metric-bps' in caps:
42 raise KsftSkipEx("device does not support queue scope shapers with bw_max and metric bps")
46 channels = netnl.channels_get({'header': {'dev-index': cfg.ifindex}})
47 if channels['combined-count'] == 0:
49 cfg.nr_queues = channels['rx-count']
52 cfg.nr_queues = channels['combined-count']
54 raise KsftSkipEx(f"device does not support enough queues min 3 found {cfg.nr_queues}")
57 'handle': {'scope': 'queue', 'id': 1},
59 'bw-max': 10000})
61 'handle': {'scope': 'queue', 'id': 2},
63 'bw-max': 20000})
69 'handle': {'scope': 'queue', 'id': 0}})
75 'handle': {'scope': 'queue', 'id': 1}})
78 'handle': {'scope': 'queue', 'id': 1},
80 'bw-max': 10000})
85 'handle': {'scope': 'queue', 'id': 1},
87 'bw-max': 10000},
90 'handle': {'scope': 'queue', 'id': 2},
92 'bw-max': 20000}])
94 def del_qshapers(cfg, nl_shaper) -> None:
96 raise KsftSkipEx("queue shapers not supported by device, skipping delete")
99 'handle': {'scope': 'queue', 'id': 2}})
101 'handle': {'scope': 'queue', 'id': 1}})
105 def set_nshapers(cfg, nl_shaper) -> None:
112 raise KsftSkipEx("shapers not supported by the device")
114 if not 'support-bw-max' in caps or not 'support-metric-bps' in caps:
115 raise KsftSkipEx("device does not support nested netdev scope shapers with weight")
119 'handle': {'scope': 'netdev', 'id': 0},
120 'bw-max': 100000})
124 'handle': {'scope': 'netdev'},
126 'bw-max': 100000}])
128 def del_nshapers(cfg, nl_shaper) -> None:
130 raise KsftSkipEx("netdev shaper not supported by device, skipping delete")
133 'handle': {'scope': 'netdev'}})
137 def basic_groups(cfg, nl_shaper) -> None:
139 raise KsftSkipEx("netdev shaper not supported by the device")
148 raise KsftSkipEx("shapers not supported by the device")
150 if not 'support-weight' in caps:
151 raise KsftSkipEx("device does not support queue scope shapers with weight")
155 'leaves':[{'handle': {'scope': 'queue', 'id': 1},
157 {'handle': {'scope': 'queue', 'id': 2},
159 'handle': {'scope':'netdev'},
161 'bw-max': 10000})
163 'handle': {'scope': 'netdev'}})
166 'handle': {'scope': 'queue', 'id': 1}})
169 'handle': {'scope': 'queue', 'id': 1},
173 'handle': {'scope': 'queue', 'id': 2}})
175 'handle': {'scope': 'queue', 'id': 1}})
183 'handle': {'scope': 'netdev'}})
185 def qgroups(cfg, nl_shaper) -> None:
193 raise KsftSkipEx("shapers not supported by the device")
195 if not 'support-bw-max' in caps or not 'support-metric-bps' in caps:
196 raise KsftSkipEx("device does not support node scope shapers with bw_max and metric bps")
202 raise KsftSkipEx("shapers not supported by the device")
204 …if not 'support-nesting' in caps or not 'support-weight' in caps or not 'support-metric-bps' in ca…
205 raise KsftSkipEx("device does not support nested queue scope shapers with weight")
210 'leaves':[{'handle': {'scope': 'queue', 'id': 1},
212 {'handle': {'scope': 'queue', 'id': 2},
214 'handle': {'scope':'node'},
216 'bw-max': 10000})
217 node_id = node_handle['handle']['id']
220 'handle': {'scope': 'queue', 'id': 1}})
223 'handle': {'scope': 'queue', 'id': 1},
226 'handle': {'scope': 'node', 'id': node_id}})
228 'handle': {'scope': 'node', 'id': node_id},
231 'bw-max': 10000})
238 'leaves':[{'handle': {'scope': 'queue', 'id': 3},
240 'handle': {'scope':'node', 'id': node_id + 1},
242 'bw-max': 10000})
251 'leaves':[{'handle': {'scope': 'queue', 'id': 3},
253 'handle': {'scope':'node', 'id': node_id}})
255 'handle': {'scope': 'node', 'id': node_id}})
258 'handle': {'scope': 'queue', 'id': 3}})
261 'handle': {'scope': 'queue', 'id': 3},
265 'handle': {'scope': 'queue', 'id': 2}})
267 'handle': {'scope': 'queue', 'id': 1}})
271 'handle': {'scope': 'node', 'id': node_id}})
275 'handle': {'scope': 'queue', 'id': 3},
280 'handle': {'scope': 'queue', 'id': 3}})
284 def delegation(cfg, nl_shaper) -> None:
286 raise KsftSkipEx("device does not support node scope")
292 raise KsftSkipEx("node scope shapers not supported by the device")
294 if not 'support-nesting' in caps:
295 raise KsftSkipEx("device does not support node scope shapers nesting")
299 'leaves':[{'handle': {'scope': 'queue', 'id': 1},
301 {'handle': {'scope': 'queue', 'id': 2},
303 {'handle': {'scope': 'queue', 'id': 3},
305 'handle': {'scope':'node'},
307 'bw-max': 10000})
308 node_id = node_handle['handle']['id']
313 'leaves':[{'handle': {'scope': 'queue', 'id': 1},
315 {'handle': {'scope': 'queue', 'id': 2},
317 'handle': {'scope':'node'},
319 'bw-max': 5000})
320 nested_node_id = nested_node_handle['handle']['id']
325 'handle': {'scope': 'queue', 'id': 1},
329 'handle': {'scope': 'queue', 'id': 2},
333 'handle': {'scope': 'queue', 'id': 3},
337 'handle': {'scope': 'node', 'id': node_id},
339 'bw-max': 10000},
342 'handle': {'scope': 'node', 'id': nested_node_id},
344 'bw-max': 5000}])
348 'handle': {'scope': 'node', 'id': nested_node_id}})
352 'handle': {'scope': 'queue', 'id': 1},
356 'handle': {'scope': 'queue', 'id': 2},
360 'handle': {'scope': 'queue', 'id': 3},
364 'handle': {'scope': 'node', 'id': node_id},
366 'bw-max': 10000}])
371 'handle': {'scope': 'queue', 'id': i}})
375 def queue_update(cfg, nl_shaper) -> None:
379 raise KsftSkipEx("device does not support queue scope")
383 'handle': {'scope': 'queue', 'id': i},
385 'bw-max': (i + 1) * 1000})
388 cmd(f"ethtool -L {cfg.dev['ifname']} {cfg.rx_type} 3", timeout=10)
392 'handle': {'scope': 'queue', 'id': 0},
394 'bw-max': 1000},
397 'handle': {'scope': 'queue', 'id': 1},
399 'bw-max': 2000},
402 'handle': {'scope': 'queue', 'id': 2},
404 'bw-max': 3000}])
408 cmd(f"ethtool -L {cfg.dev['ifname']} {cfg.rx_type} 2", timeout=10)
413 'handle': {'scope': 'queue', 'id': 0},
415 'bw-max': 1000},
418 'handle': {'scope': 'queue', 'id': 1},
420 'bw-max': 2000}])
423 cmd(f"ethtool -L {cfg.dev['ifname']} {cfg.rx_type} {cfg.nr_queues}", timeout=10)
427 'handle': {'scope': 'queue', 'id': 0},
429 'bw-max': 1000},
432 'handle': {'scope': 'queue', 'id': 1},
434 'bw-max': 2000}])
439 'handle': {'scope': 'queue', 'id': i}})
441 def main() -> None: