use crate::LogicalAddress;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum ActivationType {
Default = 0x00,
WwhObd = 0x01,
CentralSecurity = 0x02,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct RoutingActivationRequest {
pub source_address: LogicalAddress,
pub activation_type: ActivationType,
pub reserved: [u8; 4],
pub reserved_oem: Option<[u8; 4]>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum RoutingActivationResponseCode {
RoutingActivationDeniedUnknownSourceAddress = 0x00,
RoutingActivationDeniedAllTcpSocketsRegisteredAndActive = 0x01,
RoutingActivationDeniedSourceAddressAlreadyActivated = 0x02,
RoutingActivationDeniedSourceAddressAlreadyRegistred = 0x03,
RoutingActivationDeniedMissingAuthentication = 0x04,
RoutingActivationDeniedRejectedConfirmation = 0x05,
RoutingActivationDeniedUnsupportedRoutingActivationType = 0x06,
RoutingActivationDeniedEncryptedConnectionViaTLSRequired = 0x07,
RoutingSuccessfullyActivated = 0x10,
RoutingSuccessfullyActivatedConfirmationRequired = 0x11,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct RoutingActivationResponse {
pub logical_address_tester: LogicalAddress,
pub logical_address_of_doip_entity: u16,
pub routing_activation_response_code: RoutingActivationResponseCode,
pub reserved_oem: [u8; 4],
pub oem_specific: Option<[u8; 4]>,
}