GithubHelp home page GithubHelp logo

leonweb33 / microps Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pandax381/microps

0.0 0.0 0.0 183 KB

Tiny TCP/IP protocol stack for lectures

License: MIT License

C 98.83% Makefile 1.17%

microps's Introduction

microps

Tiny TCP/IP protocol stack for lectures.

If you love the Go language, see here.

Porting to xv6: https://github.com/pandax381/xv6-net

Features

Supports multiple raw access methods.

  • TUN/TAP
  • PF_PACKET (Linux)
  • BPF (macOS)

Supports multiple link protocols.

  • Ethernet
  • SLIP

Other features.

  • Supports multiple interfaces
  • Supports IP forwarding
  • Automatic IP configuration by DHCP client

Build

Build sample applications and test programs

$ make

with debug output

$ CFLAGS=-DDEBUG make

Sample applications

TCP Echo server (with dynamic address)

 $ sudo apps/tcp_echo eth0 00:00:de:ad:be:ef dhcp

UDP Echo server (with static address)

 $ sudo apps/tcp_echo eth0 static 172.16.100.2 255.255.255.0 172.16.100.1

Both application listen on port 7.

Test programs

test/raw_test

$ sudo test/raw_test eth0

test/ethernet_test

$ sudo test/ethernet_test eth0

test/slip_test

$ sudo test/slip_test /dev/ttyXXX

test/arp_test

$ sudo test/arp_test eth0 00:00:de:ad:be:ef 172.16.100.2

RAW devices

You can select a Link-Level RAW device.

  • raw_socket
  • raw_tap
  • raw_bpf

It can change in the Makefile.

License

microps is under the MIT License: See LICENSE file.

microps's People

Contributors

gapry avatar jadiunr avatar kawaharasouta avatar kawasin73 avatar lrf141 avatar pandax381 avatar pois0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.