network_framework_sys/
ip_options.rs

1use crate::*;
2
3use libc::c_int;
4
5pub type nw_ip_version_t = c_int;
6pub const nw_ip_version_any: nw_ip_version_t = 0;
7pub const nw_ip_version_4: nw_ip_version_t   = 4;
8pub const nw_ip_version_6: nw_ip_version_t   = 6;
9
10pub type nw_ip_ecn_flag_t = c_int;
11pub const nw_ip_ecn_flag_non_ect: nw_ip_ecn_flag_t = 0;
12pub const nw_ip_ecn_flag_ect_0: nw_ip_ecn_flag_t   = 2;
13pub const nw_ip_ecn_flag_ect_1: nw_ip_ecn_flag_t   = 1;
14pub const nw_ip_ecn_flag_ce: nw_ip_ecn_flag_t      = 3;
15
16
17extern "C" {
18    pub fn nw_protocol_copy_ip_definition() -> nw_protocol_definition_t;
19    pub fn nw_ip_options_set_version(options: nw_protocol_options_t, version: nw_ip_version_t);
20    pub fn nw_ip_options_set_hop_limit(options: nw_protocol_options_t, hop_limit: u8);
21    pub fn nw_ip_options_set_use_minimum_mtu(options: nw_protocol_options_t, use_minimum_mtu: bool);
22    pub fn nw_ip_options_set_disable_fragmentation(options: nw_protocol_options_t, disable_fragmentation: bool);
23    pub fn nw_ip_options_set_calculate_receive_time(options: nw_protocol_options_t, calculate_receive_time: bool);
24    
25    pub fn nw_ip_create_metadata() -> nw_protocol_metadata_t;
26    pub fn nw_protocol_metadata_is_ip(metadata: nw_protocol_metadata_t) -> bool;
27    pub fn nw_ip_metadata_set_ecn_flag(metadata: nw_protocol_metadata_t, ecn_flag: nw_ip_ecn_flag_t);
28    pub fn nw_ip_metadata_get_ecn_flag(metadata: nw_protocol_metadata_t) -> nw_ip_ecn_flag_t;
29    pub fn nw_ip_metadata_set_service_class(metadata: nw_protocol_metadata_t, service_class: nw_service_class_t);
30    pub fn nw_ip_metadata_get_service_class(metadata: nw_protocol_metadata_t) -> nw_service_class_t;
31    pub fn nw_ip_metadata_get_receive_time(metadata: nw_protocol_metadata_t) -> u64;
32}
33