|
|
|
@ -7,12 +7,14 @@ extern crate rcore_user;
|
|
|
|
|
|
|
|
|
|
extern crate alloc;
|
|
|
|
|
|
|
|
|
|
use rcore_user::syscall::*;
|
|
|
|
|
use isomorphic_drivers::net::ethernet::intel::ixgbe;
|
|
|
|
|
use isomorphic_drivers::provider;
|
|
|
|
|
use alloc::prelude::*;
|
|
|
|
|
use alloc::boxed::Box;
|
|
|
|
|
use alloc::collections::BTreeMap;
|
|
|
|
|
use alloc::string::String;
|
|
|
|
|
use alloc::vec;
|
|
|
|
|
use alloc::vec::Vec;
|
|
|
|
|
use isomorphic_drivers::net::ethernet::intel::ixgbe;
|
|
|
|
|
use isomorphic_drivers::provider;
|
|
|
|
|
use rcore_user::syscall::*;
|
|
|
|
|
|
|
|
|
|
use smoltcp::iface::*;
|
|
|
|
|
use smoltcp::phy;
|
|
|
|
@ -62,7 +64,7 @@ impl provider::Provider for Provider {
|
|
|
|
|
|
|
|
|
|
#[derive(Clone)]
|
|
|
|
|
struct IXGBEDriver {
|
|
|
|
|
inner: ixgbe::IXGBEDriver
|
|
|
|
|
inner: ixgbe::IXGBEDriver,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct IXGBERxToken(Vec<u8>);
|
|
|
|
@ -136,7 +138,7 @@ enum State {
|
|
|
|
|
DATA_SOCKET_CONNECT,
|
|
|
|
|
DATA_COOKIE_SENT,
|
|
|
|
|
TEST_START,
|
|
|
|
|
TEST_RUNNING
|
|
|
|
|
TEST_RUNNING,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// IMPORTANT: Must define main() like this
|
|
|
|
@ -194,8 +196,12 @@ pub fn main() {
|
|
|
|
|
{
|
|
|
|
|
let mut socket = sockets.get::<TcpSocket>(tcp_handle);
|
|
|
|
|
if let State::BEGIN = state {
|
|
|
|
|
socket.connect(IpEndpoint::new(IpAddress::v4(10, 0, 0, 1), 5201),
|
|
|
|
|
IpEndpoint::new(IpAddress::v4(10, 0, 0, 2), 5201)).unwrap();
|
|
|
|
|
socket
|
|
|
|
|
.connect(
|
|
|
|
|
IpEndpoint::new(IpAddress::v4(10, 0, 0, 1), 5201),
|
|
|
|
|
IpEndpoint::new(IpAddress::v4(10, 0, 0, 2), 5201),
|
|
|
|
|
)
|
|
|
|
|
.unwrap();
|
|
|
|
|
state = State::CONTROL_SOCKET_CONNECT;
|
|
|
|
|
} else if let State::CONTROL_SOCKET_CONNECT = state {
|
|
|
|
|
if socket.may_send() {
|
|
|
|
@ -250,8 +256,12 @@ pub fn main() {
|
|
|
|
|
{
|
|
|
|
|
let mut socket = sockets.get::<TcpSocket>(tcp2_handle);
|
|
|
|
|
if let State::CREATE_STREAMS = state {
|
|
|
|
|
socket.connect(IpEndpoint::new(IpAddress::v4(10, 0, 0, 1), 5201),
|
|
|
|
|
IpEndpoint::new(IpAddress::v4(10, 0, 0, 2), 5202)).unwrap();
|
|
|
|
|
socket
|
|
|
|
|
.connect(
|
|
|
|
|
IpEndpoint::new(IpAddress::v4(10, 0, 0, 1), 5201),
|
|
|
|
|
IpEndpoint::new(IpAddress::v4(10, 0, 0, 2), 5202),
|
|
|
|
|
)
|
|
|
|
|
.unwrap();
|
|
|
|
|
state = State::DATA_SOCKET_CONNECT;
|
|
|
|
|
} else if let State::DATA_SOCKET_CONNECT = state {
|
|
|
|
|
if socket.may_send() {
|
|
|
|
|