Skip to content

Multi-NIC support #108

@IanSeyler

Description

@IanSeyler

These changes are in the multi-net branch.

At the moment BareMetal only supports a single NIC. There are use cases where multiple network connections may be required.

TODO:

  • Add RDX as a parameter for Device to b_net_rx and b_net_tx
  • Move bus_table into system variables memory
  • Increase os_net_mem memory to 192K (64K rx, 64K tx, 64K packet buffers)
  • init_net - Find all network devices, keep a count, find supported network devices, divide available memory for tx/rx ring buffers, init each device
  • Each driver init should use os_net_icount when storing device details to the table
  • Each driver should pull their values from the network device table. Also, the respective _reset, _transmit, _poll need to accept RDX for interface
  • Keep an indexable table of enabled network devices - qwords netIOBase, transmit, poll, stats, rx tail, tx tail
  • b_net_status return MAC of Interface, 0 if Interface invalid
  • i8254x
  • i8257x
  • i8259x
  • virtio
  • rtl8169

First step will be the network device table. The existing drivers will need to be adjusted to support that table.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions