onos openflow message handling - inango · ›readinga message and moving it to the dispatchqueueis...
TRANSCRIPT
ONOSMessageHandlingMechanismImprovement
Inango Proposal
AGENDA
› AboutInango
› ONOSpacketlossissuedescription
› Proposedsolution
› Effortestimation
ABOUTINANGO
› Inango passionisindevelopinginnovativesoftwareforadvancedcommunicationssystems
› WeofferbothproductsandservicesspanningabroadrangeoftechnologiesincludingLinuxandopen-source,optimizations,Yocto,RDK-Bandvirtualization
PACKETLOSSISSUEREPRODUCTIONSETUP
› Mininet networkwith“linear,2”topology
› ONOSserverwith“openflow”and“fwd”applications,“ipv6Forwarding”enabled
› AtrafficgeneratorisusedtogenerateICMPv6fromamininet host:• 100,000IPv6echorequestspersecond• Source:hostsIP• Destination:randomIPv6address
REPRODUCTIONCASEBeforetest Duringtest
FC00::1 FC00::2 FC00::1 FC00::2Traffic
generator
REPRODUCTIONTRAFFICFLOW
NDP
LLDP
ISSUEROOTCAUSEANALYSIS
› WhenthepacketcomestoacontrolleritisaddedtothedispatchQueuequeue
› IfthedispatchQueue isfullthenthepacketgoestothedispatchBacklogdeque
› InthiscasedispatchMessage disablesreadingfromachannel
› WecanlooseinformationifthedispatchQueue isfull
CURRENTPACKETHANDLINGSEQUENCE
PROPOSEDSOLUTION
› Reading amessageandmovingittothedispatchQueue isaquick operation
› ProcessingmessagesfromthedispatchQueue isaslow aoperation
›Weshouldaddseveraldispatchqueuesforthedifferentmessagetypes!
SOLUTIONDETAILS
› MajorPoints• Messagesshouldbeclassifiedbeforeweaddthemintoqueues• Weshouldnotstopreadingincomingpacketsfromasocketifoneofqueuesisfull• Ifwegotanewmessagetoafullqueueweshoulddropit:wehavenoabilitytostoreit
› Stabilitytweaks• WeshouldtrytokeepallcontrolmessageswiththehelpofthedispatchBacklogqueue
• SizeofthedispatchBacklog queueshouldbelimited
PERFORMANCERESULTSFORPOCIMPLEMENTATION
› WealreadyimplementedtheproposedalgorithmonONOS1.12
› ThefixisrelevantforONOS2.0aswell
› WithoriginalONOScode,thelinkgoesdownafter40-60secondsof20KPPStraffic
› Withtheproposedalgorithmwedidnotobserveissueswithlinkstabilityunderloadsofupto50KPPSforseveralminutesunderthesameconditions
PROPOSEDSOLUTION—READING
› Whenthepacketcomes,moveallthemanagementpacketsfromthedispatchBacklog tothedefaultQueue
› Trytoclassifyanincomingpacket.Ifthepacketisclassifiedsuccessfully,addittoaspecifictargetqueue.Ifthetargetqueueisfull,dropthepacket.
› IfthepacketwasnotclassifiedthentrytoaddittothedefaultQueue.IfthedefaultQueue isfullthenthe“PACKET_IN”packetsshouldbedropped.Thenon“PACKET_IN”packetsshouldbeeitheraddedtothedispatchBacklog ordropped.
NEWREADING SEQUENCE
PROPOSEDSOLUTION—PROCESSING
› Oneofpossiblesolutionsisaround-robinalgorithm:• TakeanumberofOFmessagesfrom1-stqueue• Processthem• Dothesamefortherestofthequeues,onebyone• Gobacktothefirstqueueandrepeatthestepsuntilqueuesareempty
NEWPROCESSING SEQUENCE
PROPOSEDCONFIGURATION
› 7priorityqueues,onedefaultQueue andonedispatchBacklog
› Sizeandchunksizecanbeconfiguredseparatelyforeachqueue
› ClassifierscanbeconfiguredforeachOFAgent
› LLDPandBDDPpacketsaremappedtothefirstqueue
› Firstqueuehavesize1000,thedefaultQueue – 5000,otherqueues– 1
› Sizeofchunkofmessagesforeachqueueis100
SUBMITTINGCODE
› ForONOS1.12wemodified11sourcefiles,created19additionalsourcefiles,andchanged12filesthatdescribesbuildsanddependencies
› WeexpectsimilarchangesforONOS2.0
THANKYOU!
ByNikolayMerinov,SWArchitectInango [email protected]