diff --git a/doc/proposals/fast_ipam_by_node.md b/doc/proposals/fast_ipam_by_node.md new file mode 100644 index 000000000..e589dcb60 --- /dev/null +++ b/doc/proposals/fast_ipam_by_node.md @@ -0,0 +1,287 @@ +# Whereabouts support for fast IPAM by using preallocated node slices + +# Table of contents + +- [Introduction](#introduction) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Design](#design) + - [Changes in IPAM Config](#changes-in-ipam-config) + - [Changes in Modules](#changes-in-modules) + - [Backward compatibility](#backward-compatibility) +- [Alternative Design](#alternative-design) +- [Summary](#summary) +- [Discussions and Decisions](#discussions-and-decisions) + +
Old IPAM Config | +Changes | +New IPAM Config | +
---|---|---|
+ +```json +{ + "cniVersion": "0.3.0", + "name": "whereaboutsexample", + "type": "macvlan", + "master": "eth0", + "mode": "bridge", + "ipam": { + "type": "whereabouts", + "range": "192.168.2.225/8" + } +} +``` + + | ++ +```diff +{ + "cniVersion": "0.3.0", + "name": "whereaboutsexample", + "type": "macvlan", + "master": "eth0", + "mode": "bridge", + "ipam": { + "type": "whereabouts", + "range": "192.168.2.225/8" ++ "fast_ipam": true, ++ "node_slice_size": "/22" + } +} +``` + + | ++ +```json +{ + "cniVersion": "0.3.0", + "name": "whereaboutsexample", + "type": "macvlan", + "master": "eth0", + "mode": "bridge", + "ipam": { + "type": "whereabouts", + "range": "192.168.2.225/8", + "fast_ipam": true, + "node_slice_size": "/22" + } +} +``` + + | +