| 33 | This command will take several minutes to run (10-15 minutes). This is installing two different |
| 34 | network layer !ChoiceNet routing and forwarding services. The following describes the two services |
| 35 | being installed: |
| 36 | 1. Source-routed Forwarding: |
| 37 | This !ChoiceNet forwarding service forwards packets based on the source-route contained in |
| 38 | the packet header. Unlike existing IP source routing techniques, this forwarding service will |
| 39 | not forward a packet unless the packet also contains proof that the sender ''paid'' for the forwarding |
| 40 | service. Each entry in the source-route not only identifies the next hop, but also provides a ''proof of purchase'' |
| 41 | indicating that the sender paid for use of the next hop. This proof will be checked at the next hop before the |
| 42 | packet is allowed to proceed forward. Packets without proof are automatically dropped. |
| 43 | |
| 44 | Senders in this model contact a ''Path Service (PS)'' that discovers multiple paths between any two nodes. |
| 45 | The send application tells the PS what type of path is desired -- for example |
| 46 | a High Bandwidth (and presumably expensive) path, or a Low Bandwidth path (that may be substantially cheaper). |
| 47 | The sender also includes some form of payment in the request to the PS, who in turn formulates the best path |
| 48 | for the sender, and then returns the best path along with the ''proof of purchase'' needed to get packets through |
| 49 | each hop along the path. Senders then include the path and proof of purchases for each router along the path |
| 50 | in the packet header which is examined by every router along the path. |
| 51 | |
| 52 | To implement this service, we install a '''Click Router'' in the linux kernel along with a click module that implements |
| 53 | our forwarding service. As packets enter the router they are passed to our Click module to examine them and decide |
| 54 | whether to forward them or not. We also need to install a '''Path Service (PS)'' that sending applications contact to |
| 55 | purchase paths. The Click routers advertise their forwarding service to the PS which in turn computes the best |
| 56 | path (e.g., high bandwidth or low latency) and sells it to the sending application. To avoid the need to write |
| 57 | an entirely new set of applications that are !ChoiceNet-aware, we instead wrote a '''wrapper library''' that we can load |
| 58 | with existing IPv6 applications. The wrapper library intercepts socket library calls from the application, consults a |
| 59 | local config file to determine what type of path is needed, purchases the appropriate path from the PS, and then begins |
| 60 | sending packets using the newly purchased path. |
| 61 | |
| 62 | |
| 63 | 1. Openflow-based Forwarding: |
| 64 | One forwarding service offers something akin to a |
| 65 | ''source routed'' forwarding. |