BGPRouting

Package: inet.routing.bgpv4

BGPRouting

simple module

Implements BGP Version 4. TODO config file!

The model implements RFC 4271, with the following limitations:

  • NOTIFICATION message is not implemented
  • MinASOriginationIntervalTimer and MinRouteAdvertisementIntervalTimer are not implemented
  • Optional UPDATE message Path Attributes are not implemented
  • Optional Final State Machine events are not implemented

Implemented features by RFC 4271 chapters:

  • 3. Summary of Operation (Routes & routing Information Base) -- implemented
  • 4. Message Formats:
    • Header, OPEN, UPDATE & KEEPALIVE -- implemented
    • NOTIFICATION -- not implemented
  • 5. Path Attributes:
    • ORIGIN, AS_PATH, NEXT_HOP -- implemented
    • MULTI_EXIT_DISC, LOCAL_PREF, ATOMIC_AGGRGATE, AGGREGATOR -- not implemented
  • 6. BGP Error Handling -- not implemented
  • 7. BGP Version Negotiation -- not implemented
  • 8. Event for the BGP FSM -- implemented except optional ones
  • 9. UPDATE Message Handling:
    • Decision Process -- implemented
    • Update-Send Process -- implemented except Controlling Routing Traffic Overhead
  • 10. BGP timers:
    • ConnectRetryTimer, Holdtimer, KeepAliveTimer -- implemented
    • MinASOriginationIntervalTimer and MinRouteAdvertisementIntervalTimer -- not implemented

Author: Helene Lageber

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Parameters

Name Type Default value Description
interfaceTableModule string

The path to the InterfaceTable module

routingTableModule string
ospfRoutingModule string
bgpConfig xml
dataTransferMode string "bytecount"

Properties

Name Value Description
display i=block/network2

Gates

Name Direction Size Description
tcpIn input
tcpOut output

Source code

//
// Implements BGP Version 4.
// TODO config file!
//
// The model implements RFC 4271, with the following limitations:
//   - NOTIFICATION message is not implemented
//   - MinASOriginationIntervalTimer and MinRouteAdvertisementIntervalTimer
//     are not implemented
//   - Optional UPDATE message Path Attributes are not implemented
//   - Optional Final State Machine events are not implemented
//
// Implemented features by RFC 4271 chapters:
// - 3. Summary of Operation (Routes & routing Information Base) -- implemented
// - 4. Message Formats:
//     - Header, OPEN, UPDATE & KEEPALIVE -- implemented
//     - NOTIFICATION -- not implemented
// - 5. Path Attributes:
//     - ORIGIN, AS_PATH, NEXT_HOP -- implemented
//     - MULTI_EXIT_DISC, LOCAL_PREF, ATOMIC_AGGRGATE, AGGREGATOR -- not implemented
// - 6. BGP Error Handling -- not implemented
// - 7. BGP Version Negotiation -- not implemented
// - 8. Event for the BGP FSM -- implemented except optional ones
// - 9. UPDATE Message Handling:
//     - Decision Process -- implemented
//     - Update-Send Process -- implemented except Controlling Routing Traffic Overhead
// - 10. BGP timers:
//     - ConnectRetryTimer, Holdtimer, KeepAliveTimer -- implemented
//     - MinASOriginationIntervalTimer and MinRouteAdvertisementIntervalTimer -- not implemented
//
// @author Helene Lageber
//
simple BGPRouting like IBGPRouting
{
    parameters:
        string interfaceTableModule;   // The path to the InterfaceTable module
        string routingTableModule;
        string ospfRoutingModule;
        @display("i=block/network2");
        xml bgpConfig;
        string dataTransferMode @enum("bytecount","object","bytestream") = default("bytecount");
    gates:
        input tcpIn;
        output tcpOut;
}


File: src/inet/routing/bgpv4/BGPRouting.ned