3.1 User Space rPGM - UCL Computer Science

advertisement
Project Progression Specification
Abstract
Having carried out an initial router based implementation of PGM in FreeBSD, there are now a number
of possible directions in which the project can progress. This document discusses the various options
available and the considerations that must be taken into account.
ABSTRACT ............................................................................................................................................ 1
UPDATE LOG ........................................................................................................................................ 3
1.
INTRODUCTION .......................................................................................................................... 3
2.
REFERENCES ............................................................................................................................... 3
3.
PROPOSALS .................................................................................................................................. 3
3.1
USER SPACE RPGM ................................................................................................................... 3
3.2
OPERATING SYSTEM INDEPENDENCE ........................................................................................ 4
3.3
CONVERSION TO OBJECT–ORIENTED LANGUAGE ...................................................................... 4
3.3.1 Speed And Efficiency ............................................................................................................ 4
3.3.2 Examples of Object Orientation in routers ........................................................................... 4
3.4
RELIABLE MULTICAST TRANSPORT AREA................................................................................. 4
APPENDIX A ......................................................................................................................................... 5
GLOSSARY............................................................................................................................................. 5
2
Update Log
Date
29-12-2001
Name
Manish
Change
First Draft
1. Introduction
Following the implementation of the router functionality of the Pragmatic General Multicast (PGM)
protocol, there are a number of different ways in which the current implementation can be extended to
include further functionality.
This document outlines the list of ideas brought up during group discussions, along with any
considerations that must be taken into account.
2. References
[1] J. Chesterfield, A. Diana, A. Greenhalgh, M. Lad, M. Lim. rPGM. A Router Implementation of
Pragmatic General Multicast. UCL. September 2000.
[2] The XORP Extensible Open Router Platform. ICSI Center for Open Networking (ICON).
International Computer Science Institute. http://www.xorp.org
[3] The Click Modular Router Project. MIT. http://www.pdos.lcs.mit.edu/click/
3. Proposals
3.1 User Space rPGM
The current rPGM implementation has been carried out within the kernel’s space. Although this is an
acceptable location for the PGM router functionality to be placed, it does place some constraints on the
implementation itself.
 Firstly, kernel space resources are limited and although PGM has been designed to require minimal
storage, it still requires state to be stored within a PGM capable router. This state is dependent
upon the number of active PGM sessions passing through the router. Heavy traffic and usage could
lead to instability within the router and packet loss due to lack of available kernel resources.
 Potential problems or bugs within the implementation, or external factors conflicting with the
implementation, could destabilise the kernel. This is clearly unacceptable.
A proposal has been made to move the rPGM implementation into user space thus allowing it to act as
a daemon process that can be loaded or unloaded as necessary without affecting the kernel or requiring
machine reboots. The main considerations that must be taken into account for such a task are:
 A situation may arise where a machine is required to act as both a PGM capable router and a PGM
host. In such circumstances, consideration must be given on how incoming packets can be filtered
to ensure that they are passed to the correct process. A firewall type mechanism has been proposed
as a possible solution to divert packets to the correct process given a set of rules. This requires
further investigation before proceeding.
 Although rPGM would run within a self-contained process, it will still need to pass packets to and
from the kernel for forwarding (of NAK/NCF and SPM packets). The question raised here is
whether kernel modifications will still be necessary. If such modifications are necessary, careful
consideration must be given to the interfacing between the two. However, with a self-contained
process, it should be possible to use standard system calls for such interfacing and make use of a
firewall type mechanism to divert packets appropriately.
3
3.2 Operating System Independence
The current rPGM implementation has been carried out as an addition to the FreeBSD kernel.
Therefore the implementation language of choice was C and although custom data structures have been
created for state storage, extensive use is made of the BSD mbuf mechanism for storing and passing
packet data in memory.
One of the future goals of the project is to allow rPGM to run over different operating systems such as
Linux. In order for this to be achieved, it will be necessary for any BSD-specific parts of the code to be
replaced with generic code. This will involve:
 removing the current mbuf usage
 re-architecturing packet processing, handling and passing mechanism
3.3 Conversion to Object–Oriented Language
The proposal has been made to convert the implementation into an object-oriented one using C++. The
main concerns here are:
3.3.1 Speed And Efficiency
It should be remembered that this is a router-based implementation and so an implicit goal would be to
ensure that speed is not compromised. The router should handle packets as quickly as possible. Object
Orientation may compromise this, imposing delays in processing and reduced efficiency.
However, it is our opinion that the difference in speed is small enough to warrant serious consideration
toward such a code conversion. The main hit in performance will result from the move from kernel
space into user space.
An object-oriented approach within user space will allow for a more modular implementation of a
daemon or loadable module. Furthermore, it would be possible to make use of libraries such as the
Standard Template Library (STL) for data structures (for state information).
3.3.2 Examples of Object Orientation in routers
The various flavors of Unix (including BSD and Linux) are implemented in C, as are most commercial
routing software. Having said this, there are examples of object-oriented router implementations with
the XORP Platform [2], and the Click Modular Router Project from MIT [3].
By converting rPGM to an object-oriented implementation, a concern is that it may introduce some
potential problems in areas where interfacing with the kernel is necessary. However, as mentioned in
section 3.1, by encapsulating the implementation within a daemon process, it should only be necessary
to make use of standard system calls in order to pass the outgoing and incoming packets to and from
the kernel space. Any packet decapsulation work carried out would remain the same.
3.4 Reliable Multicast Transport Area
It is currently understood that within the Reliable Multicast Transport (RMT) area, there will be a
number of different kinds of reliable multicast solutions with different levels of router support, but with
similar basic building blocks for handling NAK spooression, providing services such as DLR, grouping
recievers into subsets etc.
Careful consideration must be given to this, and it has been proposed that the rPGM implementation
should be considered as an architectural framework for Reliable Multicast Router Assistance. The first
“plugin” would be PGM, but the API should be designed such that it is easy to add others. Data
structures should also be sufficiently generic to aid future progress within the area.
4
Appendix A
Glossary
DLR
NAK
NCF
PGM
RMT
SPM
Designated Local Repairer
Negative Acknowledgement
NAK Confirmation
Pragmatic General Multicast
Reliable Multicast Transport
Source Path Message
5
Download