Skip to main content

init_fstack

Function init_fstack 

Source
pub fn init_fstack(config_args: &Vec<String>, eal_args: &Vec<String>)
Expand description

config_args is passed to ff_load_config (e.g. ["teto", "--conf", "config.ini"]). eal_args is injected into dpdk_argv before ff_dpdk_init (e.g. ["--no-pci"]).

Examples found in repository?
examples/udp_echo.rs (line 34)
29fn main() {
30    // Docker/TAP configuration — swap for FStackConfig::for_bare_metal() on bare metal.
31    let cfg = FStackConfig::for_docker();
32
33    println!("Initializing F-Stack...");
34    init_fstack(&cfg.config_args(), &cfg.eal_args());
35
36    let bind_ip   = "0.0.0.0".to_string();
37    let bind_port = 8080u16;
38
39    println!("Creating UDP socket on {}:{}...", bind_ip, bind_port);
40    let socket: UniquePtr<FStackUdpSocket> =
41        create_udp_socket(&bind_ip, bind_port, on_packet);
42
43    unsafe {
44        GLOBAL_SOCKET = Some(&*socket as *const FStackUdpSocket);
45    }
46
47    println!("Starting F-Stack UDP event loop...");
48    run_fstack(&socket);
49}
More examples
Hide additional examples
examples/tcp_echo.rs (line 43)
38fn main() {
39    // Docker/TAP configuration — swap for FStackConfig::for_bare_metal() on bare metal.
40    let cfg = FStackConfig::for_docker();
41
42    println!("Initializing F-Stack...");
43    init_fstack(&cfg.config_args(), &cfg.eal_args());
44
45    let bind_ip   = "0.0.0.0".to_string();
46    let bind_port = 8080u16;
47
48    let tcp_opts = TcpSocketOptions::default()
49        .nodelay(true)
50        .quickack(true);
51
52    println!("Creating TCP listener on {}:{}...", bind_ip, bind_port);
53    let listener: UniquePtr<FStackTcpListener> =
54        create_tcp_listener(&bind_ip, bind_port, &tcp_opts.to_ffi(), on_connect, on_data, on_disconnect);
55
56    unsafe {
57        GLOBAL_LISTENER = Some(&*listener as *const FStackTcpListener);
58    }
59
60    println!("Starting F-Stack TCP event loop...");
61    run_fstack_tcp(&listener);
62}