-
Notifications
You must be signed in to change notification settings - Fork 7
CommonTopology
Tobias Freundorfer edited this page Nov 8, 2015
·
7 revisions
This protobuffer definition contains data types shared by multiple modules handling topology related tasks.
Simple representation of a specific port of a specific switch. switch_dpid = datapathID = switchID = instanceID of a switchAdapter.
message AttachmentPoint{
required uint64 switch_dpid = 1;
required uint32 switch_port = 2;
}
Optional additional information about a SwitchPort.
message PortSpecs {
optional uint64 MAC_address = 1; /* mac address of port */
optional string port_name = 2; /* Name of port */
optional uint32 config = 3; /* Bitmap of OFPPC_* flags. */
optional uint32 state = 4; /* Bitmap of OFPPS_* flags. */
optional uint32 curr = 5; /* Current features. */
optional uint32 advertised = 6; /* Features being advertised by the port. */
optional uint32 supported = 7; /* Features supported by the port. */
optional uint32 peer = 8; /* Features advertised by peer. */
optional uint32 curr_speed = 9; /* Current port bitrate in kbps. */
optional uint32 max_speed = 10; /* Max port bitrate in kbps */
}
Anything discovered in the network that has a mac_address and is NOT an OpenFlow switch.
message Device {
required uint64 MAC_address = 1;
repeated uint32 IPv4_address = 2;
repeated bytes IPv6_address = 3; // 16 bytes per address
required uint64 millis_since_last_seen = 4;
required "AttachmentPoint":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#AttachmentPoint attachment_point = 5;
repeated "AttachmentPoint":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#AttachmentPoint additional_attachment_points = 6;
}
A more advanced representation of a specific port of a specific switch. This is an AttachmentPoint + optionally additional information about that specific port.
message SwitchPort {
required "AttachmentPoint":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#AttachmentPoint attachment_point = 1;
optional "PortSpecs":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#PortSpecs port_specs = 2;
}
Simple representation of a directed link between two Attachment points: A link from (source.switch_dpid,source.switch_port) ----> (target.switch_dpid, target.switch_port)
message SwitchToSwitchLink {
required "AttachmentPoint":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#AttachmentPoint source = 1;
required "AttachmentPoint":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#AttachmentPoint target = 2;
}
Additional information about the switch
message SwitchSpecs {
optional uint32 n_buffers = 1; /* Max packets buffered at once. */
optional uint32 n_tables = 2; /* Number of tables supported by datapath.(8 bit) */
optional uint32 auxiliary_id = 3; /* Identify auxiliary connections (8 bit)*/
/* Features. */
optional uint32 capabilities = 4; /* Bitmap of support "ofp_capabilities". */
optional uint32 reserved = 5;
}
message Switch {
required uint64 switch_dpid = 1;
required uint32 openflow_version = 2; // 8bit Value OFP_VERSION
repeated "SwitchPort":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#SwitchPort switch_ports = 3;
optional "SwitchSpecs":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#SwitchSpecs switch_specs = 4;
}
message Topology {
repeated "Switch":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#Switch switches = 1;
repeated "SwitchToSwitchLink":https://ipvs.informatik.uni-stuttgart.de/redmine/projects/zerosdn/wiki/CommonTopology#SwitchToSwitchLink switch_to_switch_links = 2;
}