Skip to content

pandax381/xv6-net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xv6-net

This project is implement TCP/IP Network Stack on xv6.

The network stack uses https://github.com/pandax381/microps

microps is a user-mode TCP/IP stack that I'm developing. This project ported it to the xv6 kernel.

Features

  • Network device
    • PCI
      • Bus scan
      • Find device driver
    • Intel 8254x (e1000) driver
      • Initialization
      • Basic operation of RX/TX with DMA
      • Interrupt trap
      • Detect interrupt souce (if multiple NICs)
    • Device abstraction
      • Define structure for physical device abstraction (struct netdev)
      • Support multiple link protocols and physical devices
  • Protocols
    • Ethernet
    • ARP
    • IP
    • ICMP
    • UDP
    • TCP
  • Network Interface
    • Interface abstraction
      • Define structure for logical interface abstraction (struct netif)
      • Support multiple address family and logical interfaces
    • Configuration
      • Makeshift systemcalls and commands
        • ifget
        • ifset
        • ifup
        • ifdown
  • Socket API
    • Systemcalls
      • socket
      • bind
      • connect
      • listen
      • accept
      • recv
      • send
      • recvfrom
      • sendto
    • Socket descriptor (compatible with File descriptor)
    • Socket address (struct sockaddr)

Task

  • ARP resolution waiting queue (Currently discards data)
  • TCP timer (Currently retransmission timer is not working)
  • DHCP client
  • DNS stub resolver

License

xv6: Under the MIT License. See LICENSE file.

Additional code: Under the MIT License. See header of each source code.

About

xv6 OS with TCP/IP Network Stack

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 87.9%
  • C++ 3.0%
  • Assembly 2.3%
  • Makefile 2.3%
  • Shell 1.4%
  • Perl 1.2%
  • Other 1.9%