https://github.com/root-hbx/mobility-management-linux
MIPv4 simulator on ubuntu 22.04LTS for mobility management experiments
https://github.com/root-hbx/mobility-management-linux
mipv4 mobilecomputing simulator wirelessnetwork
Last synced: about 1 year ago
JSON representation
MIPv4 simulator on ubuntu 22.04LTS for mobility management experiments
- Host: GitHub
- URL: https://github.com/root-hbx/mobility-management-linux
- Owner: root-hbx
- License: mit
- Created: 2025-03-09T08:20:49.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-12T09:07:50.000Z (over 1 year ago)
- Last Synced: 2025-05-14T08:07:25.252Z (about 1 year ago)
- Topics: mipv4, mobilecomputing, simulator, wirelessnetwork
- Language: Python
- Homepage: https://root-hbx.github.io/mobility-management-linux/
- Size: 1.61 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mobility Management Simulator
> aka. MM-Sim
- Mobility Management
- Mobile IP: MIPv4
Partial implementation of [RFC 5944](https://tools.ietf.org/html/rfc5944) Mobile IP framework for Linux Ubuntu 22.04LTS, written in Python 3.10.
---
🔥 *News* 🔥
- [2025-0311] All functions (`start/stop/register/deregister/status`) are ready to go!
- [2025-0310] Refactor! Refactor! Refactor!
- [2025-0309] MM-Sim is supporting Ubuntu 22.04 LTS and Python 3.10 now
## Overview
🚀 Mobile IP (MIP) framework allows transparent routing of IP packets to mobile nodes regardless of its current point of attachment in a the Internet. Thanks to MIP, mobile node is able to roam from an its home network to any foreign network, being always reachable through its home IP address.
🌟 A brief introduction of Mobile IP is provided [here](https://docs.google.com/presentation/d/1uMKtgEIESeQTkul_gu7KrXnIFI3lo5WVHKnhKJMQ3ag/edit?usp=drive_link)
🎉 Following key features are supported:
* Mobile IP protocol (Registration Request and Reply)
* Mobile-Home Authentication Extension (MHAE) with the 128-bit key `HMAC-MD5` authentication algorithm
* Home Agent entity
* Mobile Node entity
* Co-located CoA mode
* Forward and Reverse tunneling
* GRE encapsulation
* Identification based on timestamp
⚠️ Following key features are not supported:
* Agent discovery and advertisement with ICMP
* Foreign Agent entity
* Minimal encapsulation
* Broadcast datagrams
Basic use case that can be achieved with this implementation of MIP is shown on figure below.

## Quick Start
**Create a venv**
```sh
# create a venv with py3.10
python -m venv .venv
# activate
source .venv/bin/activate
```
**Dependencies**
```bash
# plz make sure you are under a python venv
pip install ntplib pyroute2 netaddr
```
**Start for HA and MN**
```bash
cd mobility-management-linux
# HOME AGENT: with sudo privilege!!!
sudo $(which python3) -m examples.home_agent examples/ha.cfg
# MOBILE NODE: with sudo privilege!!!
# start
sudo $(which python3) -m examples.mn_agent start examples/mn.cfg
# Other args like: stop / register / deregister ...
```
Congratulates! Now HA and MN are started 👍
More commands for exploring can be checked [here](./examples/README.md).
## Related Work
This repo is inspired by [mkiol's Mobile IP](https://github.com/mkiol/MobileIP) 🫡
This project, developed by [Boxuan Hu](https://bxhu2004.com/), rectifies errors in previous work and upgrades the entire project from Python 2 to Python 3, incorporating a comprehensive restructuring. 🚀
Modifications and additions are licensed under [MIT-License](https://en.wikipedia.org/wiki/MIT_License). For details on what changes were made, please refer to the commit history.
The project is currently stable on Linux Ubuntu 22.04 LTS and supports Python 3.10. 🌟