mirror of
				https://github.com/edera-dev/krata.git
				synced 2025-11-03 23:29:39 +00:00 
			
		
		
		
	rebrand to krata
This commit is contained in:
		@ -53,7 +53,7 @@ impl AutoNetworkCollector {
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            let dom_path = format!("/local/domain/{}", domid_string);
 | 
			
		||||
            let Some(uuid_string) = tx.read_string_optional(&format!("{}/hypha/uuid", dom_path))?
 | 
			
		||||
            let Some(uuid_string) = tx.read_string_optional(&format!("{}/krata/uuid", dom_path))?
 | 
			
		||||
            else {
 | 
			
		||||
                continue;
 | 
			
		||||
            };
 | 
			
		||||
@ -91,10 +91,10 @@ impl AutoNetworkCollector {
 | 
			
		||||
        dom_path: &str,
 | 
			
		||||
        side: &str,
 | 
			
		||||
    ) -> Result<NetworkSide> {
 | 
			
		||||
        let side_path = format!("{}/hypha/network/{}", dom_path, side);
 | 
			
		||||
        let side_path = format!("{}/krata/network/{}", dom_path, side);
 | 
			
		||||
        let Some(ipv4) = tx.read_string_optional(&format!("{}/ipv4", side_path))? else {
 | 
			
		||||
            return Err(anyhow!(
 | 
			
		||||
                "hypha domain {} is missing {} ipv4 network entry",
 | 
			
		||||
                "krata domain {} is missing {} ipv4 network entry",
 | 
			
		||||
                uuid,
 | 
			
		||||
                side
 | 
			
		||||
            ));
 | 
			
		||||
@ -102,7 +102,7 @@ impl AutoNetworkCollector {
 | 
			
		||||
 | 
			
		||||
        let Some(ipv6) = tx.read_string_optional(&format!("{}/ipv6", side_path))? else {
 | 
			
		||||
            return Err(anyhow!(
 | 
			
		||||
                "hypha domain {} is missing {} ipv6 network entry",
 | 
			
		||||
                "krata domain {} is missing {} ipv6 network entry",
 | 
			
		||||
                uuid,
 | 
			
		||||
                side
 | 
			
		||||
            ));
 | 
			
		||||
@ -110,7 +110,7 @@ impl AutoNetworkCollector {
 | 
			
		||||
 | 
			
		||||
        let Some(mac) = tx.read_string_optional(&format!("{}/mac", side_path))? else {
 | 
			
		||||
            return Err(anyhow!(
 | 
			
		||||
                "hypha domain {} is missing {} mac address entry",
 | 
			
		||||
                "krata domain {} is missing {} mac address entry",
 | 
			
		||||
                uuid,
 | 
			
		||||
                side
 | 
			
		||||
            ));
 | 
			
		||||
@ -118,7 +118,7 @@ impl AutoNetworkCollector {
 | 
			
		||||
 | 
			
		||||
        let Ok(ipv4) = Ipv4Cidr::from_str(&ipv4) else {
 | 
			
		||||
            return Err(anyhow!(
 | 
			
		||||
                "hypha domain {} has invalid {} ipv4 network cidr entry: {}",
 | 
			
		||||
                "krata domain {} has invalid {} ipv4 network cidr entry: {}",
 | 
			
		||||
                uuid,
 | 
			
		||||
                side,
 | 
			
		||||
                ipv4
 | 
			
		||||
@ -127,7 +127,7 @@ impl AutoNetworkCollector {
 | 
			
		||||
 | 
			
		||||
        let Ok(ipv6) = Ipv6Cidr::from_str(&ipv6) else {
 | 
			
		||||
            return Err(anyhow!(
 | 
			
		||||
                "hypha domain {} has invalid {} ipv6 network cidr entry: {}",
 | 
			
		||||
                "krata domain {} has invalid {} ipv6 network cidr entry: {}",
 | 
			
		||||
                uuid,
 | 
			
		||||
                side,
 | 
			
		||||
                ipv6
 | 
			
		||||
@ -136,7 +136,7 @@ impl AutoNetworkCollector {
 | 
			
		||||
 | 
			
		||||
        let Ok(mac) = EthernetAddress::from_str(&mac) else {
 | 
			
		||||
            return Err(anyhow!(
 | 
			
		||||
                "hypha domain {} has invalid {} mac address entry: {}",
 | 
			
		||||
                "krata domain {} has invalid {} mac address entry: {}",
 | 
			
		||||
                uuid,
 | 
			
		||||
                side,
 | 
			
		||||
                mac
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ use tokio::select;
 | 
			
		||||
use tokio::sync::mpsc::{channel, Receiver};
 | 
			
		||||
use tokio::task::JoinHandle;
 | 
			
		||||
 | 
			
		||||
const TX_CHANNEL_BUFFER_LEN: usize = 300;
 | 
			
		||||
const TX_CHANNEL_BUFFER_LEN: usize = 1000;
 | 
			
		||||
 | 
			
		||||
#[derive(Clone)]
 | 
			
		||||
pub struct NetworkBackend {
 | 
			
		||||
@ -151,12 +151,12 @@ impl NetworkBackend {
 | 
			
		||||
    pub async fn launch(self) -> Result<JoinHandle<()>> {
 | 
			
		||||
        Ok(tokio::task::spawn(async move {
 | 
			
		||||
            info!(
 | 
			
		||||
                "lauched network backend for hypha guest {}",
 | 
			
		||||
                "lauched network backend for krata guest {}",
 | 
			
		||||
                self.metadata.uuid
 | 
			
		||||
            );
 | 
			
		||||
            if let Err(error) = self.run().await {
 | 
			
		||||
                warn!(
 | 
			
		||||
                    "network backend for hypha guest {} failed: {}",
 | 
			
		||||
                    "network backend for krata guest {} failed: {}",
 | 
			
		||||
                    self.metadata.uuid, error
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
@ -167,7 +167,7 @@ impl NetworkBackend {
 | 
			
		||||
impl Drop for NetworkBackend {
 | 
			
		||||
    fn drop(&mut self) {
 | 
			
		||||
        info!(
 | 
			
		||||
            "destroyed network backend for hypha guest {}",
 | 
			
		||||
            "destroyed network backend for krata guest {}",
 | 
			
		||||
            self.metadata.uuid
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
use bytes::BytesMut;
 | 
			
		||||
// Referenced https://github.com/vi/wgslirpy/blob/master/crates/libwgslirpy/src/channelized_smoltcp_device.rs
 | 
			
		||||
use bytes::BytesMut;
 | 
			
		||||
use log::{debug, warn};
 | 
			
		||||
use smoltcp::phy::{Checksum, Device, Medium};
 | 
			
		||||
use tokio::sync::mpsc::Sender;
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
use std::{collections::HashMap, time::Duration};
 | 
			
		||||
use std::{collections::HashMap, thread, time::Duration};
 | 
			
		||||
 | 
			
		||||
use anyhow::Result;
 | 
			
		||||
use autonet::{AutoNetworkChangeset, AutoNetworkCollector, NetworkMetadata};
 | 
			
		||||
@ -64,6 +64,7 @@ impl NetworkService {
 | 
			
		||||
            })
 | 
			
		||||
            .collect::<Vec<_>>();
 | 
			
		||||
 | 
			
		||||
        thread::sleep(Duration::from_secs(1));
 | 
			
		||||
        let (launched, failed) = futures::executor::block_on(async move {
 | 
			
		||||
            let mut failed: Vec<Uuid> = Vec::new();
 | 
			
		||||
            let mut launched: Vec<(Uuid, JoinHandle<()>)> = Vec::new();
 | 
			
		||||
@ -76,7 +77,7 @@ impl NetworkService {
 | 
			
		||||
 | 
			
		||||
                    Err((metadata, error)) => {
 | 
			
		||||
                        warn!(
 | 
			
		||||
                            "failed to launch network backend for hypha guest {}: {}",
 | 
			
		||||
                            "failed to launch network backend for krata guest {}: {}",
 | 
			
		||||
                            metadata.uuid, error
 | 
			
		||||
                        );
 | 
			
		||||
                        failed.push(metadata.uuid);
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,7 @@ use super::key::NatKeyProtocol;
 | 
			
		||||
use super::table::NatTable;
 | 
			
		||||
 | 
			
		||||
const RECLAIM_CHANNEL_QUEUE_LEN: usize = 10;
 | 
			
		||||
const RECEIVE_CHANNEL_QUEUE_LEN: usize = 30;
 | 
			
		||||
const RECEIVE_CHANNEL_QUEUE_LEN: usize = 1000;
 | 
			
		||||
 | 
			
		||||
pub struct NatProcessor {
 | 
			
		||||
    mtu: usize,
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@ mod icmp;
 | 
			
		||||
mod tcp;
 | 
			
		||||
mod udp;
 | 
			
		||||
 | 
			
		||||
const RX_CHANNEL_BOUND: usize = 300;
 | 
			
		||||
const RX_CHANNEL_QUEUE_LEN: usize = 1000;
 | 
			
		||||
 | 
			
		||||
pub struct ProxyNatHandlerFactory {}
 | 
			
		||||
 | 
			
		||||
@ -38,7 +38,7 @@ impl NatHandlerFactory for ProxyNatHandlerFactory {
 | 
			
		||||
    async fn nat(&self, context: NatHandlerContext) -> Option<Box<dyn NatHandler>> {
 | 
			
		||||
        match context.key.protocol {
 | 
			
		||||
            NatKeyProtocol::Udp => {
 | 
			
		||||
                let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_BOUND);
 | 
			
		||||
                let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_QUEUE_LEN);
 | 
			
		||||
                let mut handler = ProxyUdpHandler::new(rx_sender);
 | 
			
		||||
 | 
			
		||||
                if let Err(error) = handler.spawn(context, rx_receiver).await {
 | 
			
		||||
@ -50,7 +50,7 @@ impl NatHandlerFactory for ProxyNatHandlerFactory {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            NatKeyProtocol::Icmp => {
 | 
			
		||||
                let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_BOUND);
 | 
			
		||||
                let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_QUEUE_LEN);
 | 
			
		||||
                let mut handler = ProxyIcmpHandler::new(rx_sender);
 | 
			
		||||
 | 
			
		||||
                if let Err(error) = handler.spawn(context, rx_receiver).await {
 | 
			
		||||
@ -62,7 +62,7 @@ impl NatHandlerFactory for ProxyNatHandlerFactory {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            NatKeyProtocol::Tcp => {
 | 
			
		||||
                let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_BOUND);
 | 
			
		||||
                let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_QUEUE_LEN);
 | 
			
		||||
                let mut handler = ProxyTcpHandler::new(rx_sender);
 | 
			
		||||
 | 
			
		||||
                if let Err(error) = handler.spawn(context, rx_receiver).await {
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,7 @@ const TCP_BUFFER_SIZE: usize = 65535;
 | 
			
		||||
const TCP_ACCEPT_TIMEOUT_SECS: u64 = 120;
 | 
			
		||||
const TCP_DANGLE_TIMEOUT_SECS: u64 = 10;
 | 
			
		||||
 | 
			
		||||
const TCP_IP_BUFFER_LEN: usize = 300;
 | 
			
		||||
const TCP_IP_BUFFER_LEN: usize = 1000;
 | 
			
		||||
 | 
			
		||||
pub struct ProxyTcpHandler {
 | 
			
		||||
    rx_sender: Sender<BytesMut>,
 | 
			
		||||
 | 
			
		||||
@ -11,8 +11,8 @@ use tokio::select;
 | 
			
		||||
use tokio::sync::mpsc::{channel, Receiver, Sender};
 | 
			
		||||
use tokio::task::JoinHandle;
 | 
			
		||||
 | 
			
		||||
const RAW_SOCKET_TRANSMIT_QUEUE_LEN: usize = 500;
 | 
			
		||||
const RAW_SOCKET_RECEIVE_QUEUE_LEN: usize = 500;
 | 
			
		||||
const RAW_SOCKET_TRANSMIT_QUEUE_LEN: usize = 1000;
 | 
			
		||||
const RAW_SOCKET_RECEIVE_QUEUE_LEN: usize = 1000;
 | 
			
		||||
 | 
			
		||||
#[derive(Debug)]
 | 
			
		||||
pub enum RawSocketProtocol {
 | 
			
		||||
 | 
			
		||||
@ -19,9 +19,9 @@ use tokio::{
 | 
			
		||||
    task::JoinHandle,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const TO_BRIDGE_QUEUE_LEN: usize = 50;
 | 
			
		||||
const FROM_BRIDGE_QUEUE_LEN: usize = 50;
 | 
			
		||||
const BROADCAST_QUEUE_LEN: usize = 50;
 | 
			
		||||
const TO_BRIDGE_QUEUE_LEN: usize = 1000;
 | 
			
		||||
const FROM_BRIDGE_QUEUE_LEN: usize = 1000;
 | 
			
		||||
const BROADCAST_QUEUE_LEN: usize = 1000;
 | 
			
		||||
const MEMBER_LEAVE_QUEUE_LEN: usize = 10;
 | 
			
		||||
 | 
			
		||||
#[derive(Debug)]
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user