Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Virtualization support #490

Open
wants to merge 61 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
e5ca105
add vmx virtio-net support for Composite
invalid-email-address Dec 22, 2023
091ff7a
add vmxnet3
invalid-email-address Dec 22, 2023
cd312b5
simple no-op NF
invalid-email-address Mar 6, 2024
f6b0d28
simple vmm without NF interposition
invalid-email-address Mar 6, 2024
75a0d2c
debug nf session
invalid-email-address Mar 12, 2024
1a9d9c2
debug
invalid-email-address Mar 15, 2024
6b1098f
debug
invalid-email-address Mar 18, 2024
e782f5d
Integration Testing
invalid-email-address Mar 20, 2024
d76e078
Integration Testing
invalid-email-address Mar 20, 2024
e3cec5a
Integration Testing
invalid-email-address Mar 26, 2024
bdcb33f
Multi-VM test
invalid-email-address Apr 8, 2024
551f2ed
Multi-VM test
invalid-email-address Apr 20, 2024
66b7863
noop nf
invalid-email-address Apr 20, 2024
779c590
debug noop nf
invalid-email-address Apr 21, 2024
90025ce
debug noop nf
invalid-email-address Apr 21, 2024
7aea6b7
update noop nf config file
invalid-email-address Apr 23, 2024
f1ea3b3
update ndpi nf config file
invalid-email-address Apr 23, 2024
02acd31
change memory configuration
invalid-email-address Apr 23, 2024
a7f8a53
change memory configuration
invalid-email-address Apr 27, 2024
d31db1a
change memory configuration
invalid-email-address Apr 27, 2024
a176f57
add nf
invalid-email-address Apr 27, 2024
dbd2102
add nf
invalid-email-address Apr 27, 2024
80bab51
aes function test
invalid-email-address Apr 27, 2024
1af0c7c
improve the no op nf
invalid-email-address Apr 27, 2024
ea8c31f
improve ndpi
invalid-email-address Apr 27, 2024
ec22282
add component scripts
invalid-email-address Apr 27, 2024
d7ed6b8
improve ndpi
invalid-email-address Apr 27, 2024
aa6a9ea
improve crypto nf
invalid-email-address Apr 27, 2024
7e73b62
add new nf
invalid-email-address Apr 27, 2024
0c08b0c
add component script
invalid-email-address Apr 27, 2024
715b9e5
improve code
invalid-email-address Apr 29, 2024
925f2fd
improve code
invalid-email-address Apr 29, 2024
a00eb28
remove unnecessary output
invalid-email-address Apr 29, 2024
aacbdc6
NDPI run with real workload
invalid-email-address Apr 29, 2024
ea97a78
add component script for nginx
invalid-email-address Apr 29, 2024
5e1508a
read only shared memory support
invalid-email-address May 1, 2024
8899bbf
read only support of nicmgr
invalid-email-address May 1, 2024
9c37d9e
add vmm ro
invalid-email-address May 1, 2024
0aa0f9a
update component script
invalid-email-address May 3, 2024
b65b367
bifurcate flow when receiving packets
invalid-email-address May 3, 2024
b0c3e61
add bifurcate support data structure
invalid-email-address May 3, 2024
b759690
support bifurcate flow in nicmgr
invalid-email-address May 3, 2024
3021b63
remove write operation in read only shmem
invalid-email-address May 3, 2024
9e5d3d3
initialize shmem in the mapping operation
invalid-email-address May 3, 2024
96dd5d6
add read only interface in nicmgr
invalid-email-address May 3, 2024
daaf75b
bifurcate flow support in netio
invalid-email-address May 3, 2024
ece88b3
bifurcate flow support in vmm
invalid-email-address May 3, 2024
3d57fd8
update netio shmem interface for read only memory
invalid-email-address May 3, 2024
62669db
add bifurcate flow data structure
invalid-email-address May 3, 2024
1c030ab
read only NF
invalid-email-address May 3, 2024
d513d71
fix compiling error
invalid-email-address May 3, 2024
78869fb
scheduler for vmm
invalid-email-address May 3, 2024
611c81d
add slm vmm
invalid-email-address May 3, 2024
3faca21
vmm sched
invalid-email-address May 3, 2024
33feb91
NF scheduling support
invalid-email-address May 3, 2024
bdce675
NF scheduling interface
invalid-email-address May 3, 2024
0d67dc6
NF scheduling support
invalid-email-address May 3, 2024
e537afb
NF scheduling support
invalid-email-address May 3, 2024
2fb2d97
add sched NF
invalid-email-address May 3, 2024
23c03b6
nf sched script
invalid-email-address May 3, 2024
8a22890
Merge virtualization code
invalid-email-address Sep 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,4 @@ src/components/lib/libc/musl-1.2.0/include/asm-generic/
src/components/lib/libc/musl-1.2.0/include/linux/
src/components/lib/libc/musl-1.2.0/include/sys/queue.h
src/kernel/include/shared/cpu_ghz.h
build.sh
52 changes: 52 additions & 0 deletions composition_scripts/vmm_crypto.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[system]
description = "Simple VMM"

[[components]]
name = "booter"
img = "no_interface.llbooter"
implements = [{interface = "init"}, {interface = "addr"}]
deps = [{srv = "kernel", interface = "init", variant = "kernel"}]
constructor = "kernel"

[[components]]
name = "capmgr"
img = "capmgr.simple"
deps = [{srv = "booter", interface = "init"}, {srv = "booter", interface = "addr"}]
implements = [{interface = "capmgr"}, {interface = "init"}, {interface = "memmgr"}, {interface = "capmgr_create"}, {interface = "contigmem"}]
constructor = "booter"
baseaddr = "0x1000000"

[[components]]
name = "sched"
img = "sched.pfprr_quantum_static"
deps = [{srv = "capmgr", interface = "init"}, {srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}]
implements = [{interface = "sched"}, {interface = "syncipc"}, {interface = "init"}]
constructor = "booter"
baseaddr = "0x1600000"

[[components]]
name = "nicmgr"
img = "nicmgr.dpdk"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"}, {srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}]
implements = [{interface = "nic_netio_rx"}, {interface = "nic_netio_tx"}, {interface = "nic_netio_shmem"}]
constructor = "booter"
baseaddr = "0x6000000"

[[components]]
name = "vmm"
img = "simple_vmm.vmm"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}]
implements = [{interface = "vmm_netio_rx"}, {interface = "vmm_netio_tx"}, {interface = "vmm_netio_shmem"}]
constructor = "booter"
baseaddr = "0x2000000"

[[components]]
name = "crypto"
img = "simple_nf.crypto"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}, {srv = "vmm", interface = "vmm_netio_rx"}, {srv = "vmm", interface = "vmm_netio_tx"}, {srv = "vmm", interface = "vmm_netio_shmem"}]
params = [{key = "ip", value = "10.10.1.1"},
{key = "port", value = "90"},
{key = "vmm_id", value = "0"}
]
constructor = "booter"
baseaddr = "0x9000000"
52 changes: 52 additions & 0 deletions composition_scripts/vmm_crypto_nginx.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[system]
description = "Simple VMM"

[[components]]
name = "booter"
img = "no_interface.llbooter"
implements = [{interface = "init"}, {interface = "addr"}]
deps = [{srv = "kernel", interface = "init", variant = "kernel"}]
constructor = "kernel"

[[components]]
name = "capmgr"
img = "capmgr.simple"
deps = [{srv = "booter", interface = "init"}, {srv = "booter", interface = "addr"}]
implements = [{interface = "capmgr"}, {interface = "init"}, {interface = "memmgr"}, {interface = "capmgr_create"}, {interface = "contigmem"}]
constructor = "booter"
baseaddr = "0x1000000"

[[components]]
name = "sched"
img = "sched.pfprr_quantum_static"
deps = [{srv = "capmgr", interface = "init"}, {srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}]
implements = [{interface = "sched"}, {interface = "syncipc"}, {interface = "init"}]
constructor = "booter"
baseaddr = "0x1600000"

[[components]]
name = "nicmgr"
img = "nicmgr.dpdk"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"}, {srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}]
implements = [{interface = "nic_netio_rx"}, {interface = "nic_netio_tx"}, {interface = "nic_netio_shmem"}]
constructor = "booter"
baseaddr = "0x6000000"

[[components]]
name = "vmm"
img = "simple_vmm.vmm"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}]
implements = [{interface = "vmm_netio_rx"}, {interface = "vmm_netio_tx"}, {interface = "vmm_netio_shmem"}]
constructor = "booter"
baseaddr = "0x2000000"

[[components]]
name = "crypto"
img = "simple_nf.crypto"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}, {srv = "vmm", interface = "vmm_netio_rx"}, {srv = "vmm", interface = "vmm_netio_tx"}, {srv = "vmm", interface = "vmm_netio_shmem"}]
params = [{key = "ip", value = "10.10.1.1"},
{key = "port", value = "80"},
{key = "vmm_id", value = "0"}
]
constructor = "booter"
baseaddr = "0x9000000"
52 changes: 52 additions & 0 deletions composition_scripts/vmm_firewall_nf.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[system]
description = "Simple VMM"

[[components]]
name = "booter"
img = "no_interface.llbooter"
implements = [{interface = "init"}, {interface = "addr"}]
deps = [{srv = "kernel", interface = "init", variant = "kernel"}]
constructor = "kernel"

[[components]]
name = "capmgr"
img = "capmgr.simple"
deps = [{srv = "booter", interface = "init"}, {srv = "booter", interface = "addr"}]
implements = [{interface = "capmgr"}, {interface = "init"}, {interface = "memmgr"}, {interface = "capmgr_create"}, {interface = "contigmem"}]
constructor = "booter"
baseaddr = "0x1000000"

[[components]]
name = "sched"
img = "sched.pfprr_quantum_static"
deps = [{srv = "capmgr", interface = "init"}, {srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}]
implements = [{interface = "sched"}, {interface = "syncipc"}, {interface = "init"}]
constructor = "booter"
baseaddr = "0x1600000"

[[components]]
name = "nicmgr"
img = "nicmgr.dpdk"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"}, {srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}]
implements = [{interface = "nic_netio_rx"}, {interface = "nic_netio_tx"}, {interface = "nic_netio_shmem"}]
constructor = "booter"
baseaddr = "0x6000000"

[[components]]
name = "vmm"
img = "simple_vmm.vmm"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}]
implements = [{interface = "vmm_netio_rx"}, {interface = "vmm_netio_tx"}, {interface = "vmm_netio_shmem"}]
constructor = "booter"
baseaddr = "0x2000000"

[[components]]
name = "firewall"
img = "simple_nf.firewall"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}, {srv = "vmm", interface = "vmm_netio_rx"}, {srv = "vmm", interface = "vmm_netio_tx"}, {srv = "vmm", interface = "vmm_netio_shmem"}]
params = [{key = "ip", value = "10.10.1.1"},
{key = "port", value = "90"},
{key = "vmm_id", value = "0"}
]
constructor = "booter"
baseaddr = "0x9000000"
52 changes: 52 additions & 0 deletions composition_scripts/vmm_firewall_nf_nginx.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[system]
description = "Simple VMM"

[[components]]
name = "booter"
img = "no_interface.llbooter"
implements = [{interface = "init"}, {interface = "addr"}]
deps = [{srv = "kernel", interface = "init", variant = "kernel"}]
constructor = "kernel"

[[components]]
name = "capmgr"
img = "capmgr.simple"
deps = [{srv = "booter", interface = "init"}, {srv = "booter", interface = "addr"}]
implements = [{interface = "capmgr"}, {interface = "init"}, {interface = "memmgr"}, {interface = "capmgr_create"}, {interface = "contigmem"}]
constructor = "booter"
baseaddr = "0x1000000"

[[components]]
name = "sched"
img = "sched.pfprr_quantum_static"
deps = [{srv = "capmgr", interface = "init"}, {srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}]
implements = [{interface = "sched"}, {interface = "syncipc"}, {interface = "init"}]
constructor = "booter"
baseaddr = "0x1600000"

[[components]]
name = "nicmgr"
img = "nicmgr.dpdk"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"}, {srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}]
implements = [{interface = "nic_netio_rx"}, {interface = "nic_netio_tx"}, {interface = "nic_netio_shmem"}]
constructor = "booter"
baseaddr = "0x6000000"

[[components]]
name = "vmm"
img = "simple_vmm.vmm"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}]
implements = [{interface = "vmm_netio_rx"}, {interface = "vmm_netio_tx"}, {interface = "vmm_netio_shmem"}]
constructor = "booter"
baseaddr = "0x2000000"

[[components]]
name = "firewall"
img = "simple_nf.firewall"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}, {srv = "vmm", interface = "vmm_netio_rx"}, {srv = "vmm", interface = "vmm_netio_tx"}, {srv = "vmm", interface = "vmm_netio_shmem"}]
params = [{key = "ip", value = "10.10.1.1"},
{key = "port", value = "80"},
{key = "vmm_id", value = "0"}
]
constructor = "booter"
baseaddr = "0x9000000"
52 changes: 52 additions & 0 deletions composition_scripts/vmm_ndpi_nf.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[system]
description = "Simple VMM"

[[components]]
name = "booter"
img = "no_interface.llbooter"
implements = [{interface = "init"}, {interface = "addr"}]
deps = [{srv = "kernel", interface = "init", variant = "kernel"}]
constructor = "kernel"

[[components]]
name = "capmgr"
img = "capmgr.simple"
deps = [{srv = "booter", interface = "init"}, {srv = "booter", interface = "addr"}]
implements = [{interface = "capmgr"}, {interface = "init"}, {interface = "memmgr"}, {interface = "capmgr_create"}, {interface = "contigmem"}]
constructor = "booter"
baseaddr = "0x1000000"

[[components]]
name = "sched"
img = "sched.pfprr_quantum_static"
deps = [{srv = "capmgr", interface = "init"}, {srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}]
implements = [{interface = "sched"}, {interface = "syncipc"}, {interface = "init"}]
constructor = "booter"
baseaddr = "0x1600000"

[[components]]
name = "nicmgr"
img = "nicmgr.dpdk"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"}, {srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}]
implements = [{interface = "nic_netio_rx"}, {interface = "nic_netio_tx"}, {interface = "nic_netio_shmem"}]
constructor = "booter"
baseaddr = "0x6000000"

[[components]]
name = "vmm"
img = "simple_vmm.vmm"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}]
implements = [{interface = "vmm_netio_rx"}, {interface = "vmm_netio_tx"}, {interface = "vmm_netio_shmem"}]
constructor = "booter"
baseaddr = "0x2000000"

[[components]]
name = "nf_ndpi"
img = "simple_nf.ndpi"
deps = [{srv = "sched", interface = "sched"}, {srv = "sched", interface = "init"},{srv = "capmgr", interface = "capmgr_create"}, {srv = "capmgr", interface = "memmgr"}, {srv = "capmgr", interface = "contigmem"}, {srv = "nicmgr", interface = "nic_netio_rx"}, {srv = "nicmgr", interface = "nic_netio_tx"}, {srv = "nicmgr", interface = "nic_netio_shmem"}, {srv = "vmm", interface = "vmm_netio_rx"}, {srv = "vmm", interface = "vmm_netio_tx"}, {srv = "vmm", interface = "vmm_netio_shmem"}]
params = [{key = "ip", value = "10.10.1.1"},
{key = "port", value = "90"},
{key = "vmm_id", value = "0"}
]
constructor = "booter"
baseaddr = "0x9000000"
Loading