File tree Expand file tree Collapse file tree 2 files changed +75
-0
lines changed
Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Original file line number Diff line number Diff line change 1+ // SPDX-License-Identifier: MIT
2+
3+ use futures:: stream:: TryStreamExt ;
4+
5+ // Once we find a way to load netsimdev kernel module in CI, we can convert this
6+ // to a test
7+ fn main ( ) {
8+ let rt = tokio:: runtime:: Builder :: new_current_thread ( )
9+ . enable_io ( )
10+ . build ( )
11+ . unwrap ( ) ;
12+ rt. block_on ( get_channels ( None ) ) ;
13+ }
14+
15+ async fn get_channels ( iface_name : Option < & str > ) {
16+ let ( connection, mut handle, _) = ethtool:: new_connection ( ) . unwrap ( ) ;
17+ tokio:: spawn ( connection) ;
18+
19+ let mut channel_handle = handle. channel ( ) . get ( iface_name) . execute ( ) . await ;
20+
21+ let mut msgs = Vec :: new ( ) ;
22+ while let Some ( msg) = channel_handle. try_next ( ) . await . unwrap ( ) {
23+ msgs. push ( msg) ;
24+ }
25+ assert ! ( !msgs. is_empty( ) ) ;
26+ for msg in msgs {
27+ println ! ( "{msg:?}" ) ;
28+ }
29+ }
Original file line number Diff line number Diff line change 1+ // SPDX-License-Identifier: MIT
2+
3+ use std:: env;
4+
5+ // Once we find a way to load netsimdev kernel module in CI, we can convert this
6+ // to a test
7+ fn main ( ) {
8+ let args: Vec < String > = env:: args ( ) . collect ( ) ;
9+ if args. len ( ) != 2 {
10+ usage ( ) ;
11+ return ;
12+ }
13+ let link_name = & args[ 1 ] ;
14+ let rt = tokio:: runtime:: Builder :: new_current_thread ( )
15+ . enable_io ( )
16+ . build ( )
17+ . unwrap ( ) ;
18+ rt. block_on ( set_rx_count ( link_name) ) ;
19+ }
20+
21+ async fn set_rx_count ( iface_name : & str ) {
22+ let ( connection, mut handle, _) = ethtool:: new_connection ( ) . unwrap ( ) ;
23+ tokio:: spawn ( connection) ;
24+
25+ let result = handle. channel ( ) . set ( iface_name) . rx_count ( 4 ) . execute ( ) . await ;
26+
27+ if let Err ( error) = result {
28+ panic ! ( "{:?}" , error) ;
29+ }
30+ }
31+
32+ fn usage ( ) {
33+ eprintln ! (
34+ "usage:
35+ cargo run --example set_rx_count -- <link name>
36+
37+ Note that you need to run this program as root. Instead of running cargo as root,
38+ build the example normally:
39+
40+ cd ethtool ; cargo build --example set_rx_count
41+
42+ Then find the binary in the target directory:
43+
44+ cd target/debug/example ; sudo ./set_rx_count <link_name>"
45+ ) ;
46+ }
You can’t perform that action at this time.
0 commit comments