onos openflow message handling - inango · ›readinga message and moving it to the dispatchqueueis...

18
ONOS Message Handling Mechanism Improvement Inango Proposal

Upload: others

Post on 14-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

ONOSMessageHandlingMechanismImprovement

Inango Proposal

Page 2: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

AGENDA

› AboutInango

› ONOSpacketlossissuedescription

› Proposedsolution

› Effortestimation

Page 3: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

ABOUTINANGO

› Inango passionisindevelopinginnovativesoftwareforadvancedcommunicationssystems

› WeofferbothproductsandservicesspanningabroadrangeoftechnologiesincludingLinuxandopen-source,optimizations,Yocto,RDK-Bandvirtualization

Page 4: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

PACKETLOSSISSUEREPRODUCTIONSETUP

› Mininet networkwith“linear,2”topology

› ONOSserverwith“openflow”and“fwd”applications,“ipv6Forwarding”enabled

› AtrafficgeneratorisusedtogenerateICMPv6fromamininet host:• 100,000IPv6echorequestspersecond• Source:hostsIP• Destination:randomIPv6address

Page 5: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

REPRODUCTIONCASEBeforetest Duringtest

FC00::1 FC00::2 FC00::1 FC00::2Traffic

generator

Page 6: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

REPRODUCTIONTRAFFICFLOW

NDP

LLDP

Page 7: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

ISSUEROOTCAUSEANALYSIS

› WhenthepacketcomestoacontrolleritisaddedtothedispatchQueuequeue

› IfthedispatchQueue isfullthenthepacketgoestothedispatchBacklogdeque

› InthiscasedispatchMessage disablesreadingfromachannel

› WecanlooseinformationifthedispatchQueue isfull

Page 8: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

CURRENTPACKETHANDLINGSEQUENCE

Page 9: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

PROPOSEDSOLUTION

› Reading amessageandmovingittothedispatchQueue isaquick operation

› ProcessingmessagesfromthedispatchQueue isaslow aoperation

›Weshouldaddseveraldispatchqueuesforthedifferentmessagetypes!

Page 10: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

SOLUTIONDETAILS

› MajorPoints• Messagesshouldbeclassifiedbeforeweaddthemintoqueues• Weshouldnotstopreadingincomingpacketsfromasocketifoneofqueuesisfull• Ifwegotanewmessagetoafullqueueweshoulddropit:wehavenoabilitytostoreit

› Stabilitytweaks• WeshouldtrytokeepallcontrolmessageswiththehelpofthedispatchBacklogqueue

• SizeofthedispatchBacklog queueshouldbelimited

Page 11: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

PERFORMANCERESULTSFORPOCIMPLEMENTATION

› WealreadyimplementedtheproposedalgorithmonONOS1.12

› ThefixisrelevantforONOS2.0aswell

› WithoriginalONOScode,thelinkgoesdownafter40-60secondsof20KPPStraffic

› Withtheproposedalgorithmwedidnotobserveissueswithlinkstabilityunderloadsofupto50KPPSforseveralminutesunderthesameconditions

Page 12: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

PROPOSEDSOLUTION—READING

› Whenthepacketcomes,moveallthemanagementpacketsfromthedispatchBacklog tothedefaultQueue

› Trytoclassifyanincomingpacket.Ifthepacketisclassifiedsuccessfully,addittoaspecifictargetqueue.Ifthetargetqueueisfull,dropthepacket.

› IfthepacketwasnotclassifiedthentrytoaddittothedefaultQueue.IfthedefaultQueue isfullthenthe“PACKET_IN”packetsshouldbedropped.Thenon“PACKET_IN”packetsshouldbeeitheraddedtothedispatchBacklog ordropped.

Page 13: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

NEWREADING SEQUENCE

Page 14: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

PROPOSEDSOLUTION—PROCESSING

› Oneofpossiblesolutionsisaround-robinalgorithm:• TakeanumberofOFmessagesfrom1-stqueue• Processthem• Dothesamefortherestofthequeues,onebyone• Gobacktothefirstqueueandrepeatthestepsuntilqueuesareempty

Page 15: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

NEWPROCESSING SEQUENCE

Page 16: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

PROPOSEDCONFIGURATION

› 7priorityqueues,onedefaultQueue andonedispatchBacklog

› Sizeandchunksizecanbeconfiguredseparatelyforeachqueue

› ClassifierscanbeconfiguredforeachOFAgent

› LLDPandBDDPpacketsaremappedtothefirstqueue

› Firstqueuehavesize1000,thedefaultQueue – 5000,otherqueues– 1

› Sizeofchunkofmessagesforeachqueueis100

Page 17: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

SUBMITTINGCODE

› ForONOS1.12wemodified11sourcefiles,created19additionalsourcefiles,andchanged12filesthatdescribesbuildsanddependencies

› WeexpectsimilarchangesforONOS2.0

Page 18: ONOS OpenFlow Message Handling - Inango · ›Readinga message and moving it to the dispatchQueueis a quickoperation › Processing messages from the dispatchQueue is a slow a operation

THANKYOU!

ByNikolayMerinov,SWArchitectInango [email protected]