It is currently Tue Dec 12, 2017 7:32 pm


All times are UTC




Post new topic Reply to topic  [ 1 post ] 
Author Message
 Post subject: [RFC] dynamips auto speed/duplex/link + physical layer stuff
PostPosted: Tue Apr 15, 2014 1:13 pm 
Offline

Joined: Wed May 22, 2013 7:48 am
Posts: 93
Location: Portugal
As the title states, this is a "Request For Comments" on how to handle auto speed/duplex/link and other physical layer stuff.
dynamips doesn't emulate the physical layer and currently uses hard-coded values for all physical layer stuff.

-----

I have been slowly pondering about the duplex issue (topic8276.html) and the link up/down issue (https://github.com/GNS3/dynamips/issues/33) and I finally settled on a flexible approach that can handle these and more.

Approach:
* hypervisor command to get the capabilities of a nio (gets other properties/optional capabilities too?)
* hypervisor command to set the link partner capabilities of a nio (sets default/startup behavior too?)
* use JSON for the data of the hypervisor commands?
* by default a network card would report that auto-negotiation failed, the defaults and IOS decide what is 'used' (new behavior)
* if the capabilities of the link partner are provided, it will report auto-negotiation as successful and choose the best match (new behavior)
* other optional behaviors can be used. (reported and set through the same hypervisor commands?)

Optional behaviors being considered:
* link down if no packet received after X time
* while link is (administratively) up, send an empty keepalive packet if nothing is sent after Y time
* send and intercept information in some protocol to do auto-negotiation, report link up/down and other physical layer stuff (SNMP with custom MIBs? LLDP? what encapsulation?)
* while auto-negotiation is enabled, report auto-negotiation as successful, intercept CDP packets and self-adjust? (what happens when connected to a hub/repeater with multiple routers?)

What use cases were considered:
* a dynamips device and a non-dynamips device connected
* two devices of the same dynamips instance connected
* two devices in separate dynamips instances connected
* the default duplex+speed of a non-dynamips device is known
* the default duplex+speed of a non-dynamips device is not known
* link types (ethernet and serial use different encapsulation)

How would GNS3/dynagen use it:
* create the two nio endpoints of a link (already being done)
* connect the two nio endpoints (already being done)
* get the capabilities of each nio and set it as the link parter capabilities in the other nio (also send custom defaults and enable/disable optional behaviors) (can be done whenever and how many times we want after the nio is created)



_________________
Dynamips maintainer and sporadic developer
https://github.com/GNS3/dynamips


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group

phpBB SEO