evolu on of the subscrip on & event no fica on drafts
TRANSCRIPT
Evolu&onoftheSubscrip&on&EventNo&fica&onDra9sIETF#97Seoul17-Nov-2016
+ContributorsYanGangPeipeiGuoSusanHaresTimJenkinsMichaelScharfKentWatsenGuangyingZheng(Walker)
Authorsonatleast1draGsAndyBiermanSharonChisholmAlexanderClemmBalazsLengyelEinarNilsen-NygaardAlbertoGonzalezPrietoHectorTrevinoAmbikaPrasadTripathyEricVoit
DezignTeam
NETCONFCharterItem6:“EnhanceRFC5277withtheabilitytodeletesubscrip;onswithoutclosingtheclientsession,tomodifyexis;ngsubscrip;ons,andtohavemul;plesubscrip;onsonaestablishedclientsession.Thesechangesshouldnotaffectolderclientsthatdonotsupportthesepar;cularsubscrip;onrequirements.TheRPCsandthedatamodelsinRFC5277shouldbeconvertedtoYANG
TM
Event&YANGSubscripXonsContext
Streamingofupdates• Customizabletorecipient• On-change,Periodic,Event
Publisher
Streamingmechanism
SubscripXoninterface
Subscribingtoupdates• YANGDatastores• NETCONFNoXficaXons/Events• StaXcallyconfiguredordynamicallysignaled
Any Model
Vendor Model Events Datastore
2
Event&YANGSubscripXons4DraGs
Githubrepositoryh^ps://github.com/netconf-wg• Minutes,MeeXngRecordings,Terminology,Issues
SubscriptionMechanism:
SubscribingtoYANGdatastorepushupdatesdraG-ieb-netconf-yang-push-04
SubscribingtoEventNo&fica&onsdraG-ieb-netconf-rfc5277bis-01
ChoiceofTransports:
NETCONFSupportforEventNo&fica&onsdraG-ieb-netconf-netconf-event-noXficaXons-01
RESTCONF&HTTPTransportforEventNo&fica&onsdraG-ieb-netconf-restconf-noXf-01
3
4DraGsinLayeredFramework
Applica&on
Publisher
Subscriber
UpdatePackaging
andFlowControl
TransportSession
Encoding
gRPC NetconfRestconf
YANG
SSHHTTP1.1
JSON
TLS
EventNo&fica&onGenera&onFiltering AccessControl
EventGenera&on
YANGXMLGPBThriG
Subscrip&onMgmt
ConfiguredDynamic
Receiver
AdmissionControl
HTTP2
customNETCONFStream
StartupConfig
CandidateConfig
IntendedConfig Applied
NegoXaXonOAMStreamDiscovery
4
SubscripXonMtc
CBOR
On-Change Periodic
ControlPlane
RunningConfig
OperaXonalState
UpdatessinceIETF#96
• -04revision• Updates-not-sentflagaddedforincompletepushupdate
• Not-noXfiableextensionaddedforitemswhereon-changenotviable(viaMetadata)
• Movedstart/stopintorfc5277bis,addedanchorXmeforperiodic
• DampeningperiodissubscripXon,notperobject• Asynchrefreshoffullsetofon-changeobjects• Editorialupdates,andmaterialmovedto5277bis
5
yangpush
FeedbackRequest#1Simplifyingstreamsandfiltertypes
• OpXonal:Customplabormstreams.– IfusedreducessetofobjectsforexisXngfilters.
• Future:filtersbasedontheintersecXonofOpStatedatastorefetch+Subtree+Metadata– canbeusedtoaccomplishobjecXvesofstreams– Predefinedfiltersthatreferenceatargetdatastoreorfiltercontentsbasedonmetadata
• Request:Agreewithabove?If/whenOpStateadopted,charternewworksothatcorrespondingfilter-typesexist.Whoisinterestedinthistopic?
yangpush
FeedbackRequest#2TopicFiltering
• YANG1.1idenXtyrefstaggingexisXngobjects– CouldprovideIETFstandardinheritance
– Moreefficientthancontentfiltering
– CouldbeusedinconjuncXonwithexisXngfilters
• WGinterestinclassifyingModel,Subtree,&LeafviaindependentcategorizaXonssuchasEvent-type&severity?
extension event-topic {
argument id { identity topic-id { … /******************************** example topic subtree + topic-id + service-topic + routing-topic + bgp-topic + isis-topic **********************************/ grouping topic-filter {
leaf-list topic-filter { type identityref { base topic-id;
augment "/notif-bis:establish-subscription/notif-bis:input" {
uses topic-filter; }
yangpush
FeedbackRequest#3OpXonalUpdate-NumbertoDetectLoss/DuplicaXon
Publisher
Receiver
Object change Update bundling
TCP Loss / Duplication prior to update bundling is invisible
On TCP Socket ∆: Ignore, OAM error to receiver, or suspend
On receipt of OAM: Ignore, Replay, or Resynch On receipt of suspend: do nothing
Update Number
Assign update number, put current & previous in a push-change-update
On discovery of update loss: Ignore, Replay, or Resynch On discovery of duplicate update: drop
lifecycle of a pushed change Patch
Detection Method
• TCPcan’tcoverallcasesforupdateloss&duplicaXonofapushupdate.
• Request:Shouldweallowpush-change-updatestoincludecurrent&previousupdatenumber– Performanceconcern?ShouldthisgointransportdraG?
yangpush
Nextsteps
9
yangpush
Simplifyscope:Documentandframeotherfollow-onworkandpotenXalaugmentaXons
– Request#1:FutureFilterTypes,OpState,Metadata– Request#2:TopicDefiniXonandFiltering
FeedbackRequest#3 Shouldweincludepush-change-updatenumber?
Open ParXalpushofperiodicupdatesinasubscripXon?
Open YANG-PushstaXsXcs(e.g.countersofobjectchanges,ofupdatemessages)
UpdatessinceIETF#96
• -00&-01revisions• YANGModelchanges.
• NewgroupingsforsubscripXoninfotoallow,restrictwhatismodifiableviaRPC.
• RemovednoXficaXonsforaddingandremovingreceiversofconfiguredsubscripXons.
• CollapseddatamodelintosingleYANGmodule(ieb-event-noXficaXons)• ieb-5277-netmodandieb-5277-netconfwereremovedfromnoXf-netconfdraG
• Mayneedto“reverse”thesplitandpulloutporXonsrequiredforRFC5277backwardcompaXbility(needseparatenamespace),e.g.create-subscripXonRPC
• Expanded/renameddefiniXonsfromeventservertopublisher,andclienttosubscriberasapplicable.
• Cleaned-upwording,terminology,andredundancy
10
5277bis
Nextsteps
open ScrubforcompletenessoferrorcodesanddiagnosXcs
pendingSplitthecurrentsinglemodelintotwotokeeptheexisXngnamespaceforbackwardscompaXbilitywith5277.
pending Move5277backwardscompaXbilityobjectsintonoXf-netconf
pending DefiniXonofNETCONF&vendorcustomstreamtypes
pending ‘Test-only’opXontoseeifasubscripXonmightbeestablished
11
5277bis
UpdatessinceIETF#96
• -01revision• SinglesubscripXongoestosingleHTTP2stream.
• Updatedcallflows.Extensively.• ShiGtoHTTP2whereavailable• SSEonlyusedwithRestconfandHTTP1.1DynamicSubscripXons
• Manyclean-upsofwordingandterminology
12
Restconf/HTTP2
FeedbackRequest#4:HTTP2compaXbilitywithGRPCAgreethatadopXngmessages/exchangesforseamlesstransportoverGRPCimplementaXons?WhocanprovideextraeyestovalidateproposedsoluXon?
TCP TCP Subscriber Publisher
Restconf/HTTP POST (RPC: establish-subscription) HTTP 200 OK (SubID, URI)
Receiver
HTTP POST (URI)
Restconf/HTTP POST (RPC: modify-subscription, SubID) HTTP 200 OK (SubID)
HTTP Data (Notification subscription-modified)
HTTP 200 OK HTTP Data (Notification push-update)
HTTP Data (Notification push-update)
HTTP Headers (end of stream)
7 7
Restconf/HTTP POST (RPC: delete-subscription, SubID) HTTP 200 OK
Restconf/HTTP2
NextSteps
FeedbackRequest#4
HTTP2transportmessagecompaXbilitywithGRPC(needextrasetofeyes)
openDoweinclude3rdpartysignaledsubscripXonswithinmodelsthatneedtobesupportedgenerically,orforaparXculartypeoftransport.
14
Restconf/HTTP2
UpdatessinceIETF#96
• -00and-01revisions• AddedCallHomeinsoluXonforconfiguredsubscripXons.
• ClarifiedsupportformulXplesubscripXononasinglesession.NoneedtosupportmulXplecreate-subscripXon.
• Addedmappingbetweenterminologyin[yang-push]and[RFC6241].
• Othereditorialimprovements.
15
NoXf-netconf
FeedbackRequest#5AskReceivertoCallHomeviaaknownPort• RecommendaXon– ForconfiguredsubscripXon,ifnoNETCONFsessionlivetoReceiverthenPublisheriniXatesaCallHometotheReceiveronaddressandwell-knownportforsubscripXon.Oncesessionisestablished,Publishersends"subscripXon-started"noXficaXon.
• AssumpXons– ReceiverisawarethatcallsontheconfiguredportareintendedonlyforpushingnoXficaXons.
– ReceiverisreadytoacceptnoXficaXonsonthesessionassoonasitisestablished.
NoXf-netconf
NextSteps
FeedbackRequest#5 ShouldReceiverCallHometoawellknownReceiverPort?
pending MovecreatesubscripXonRFCtothisdocumentasitwillonlybeusedforNETCONFlegacy.
pending ExpressfilterinJSONshouldbedocumented.
17
NoXf-netconf
JointheDezignTeamMee&ngssinceIETF96Berlin(Wed8AMPacific)
2-Nov-2016 ClickforNotes,PPT,&Recording
26-Oct-2016 ClickforNotes&Recording
19-Oct-2016 ClickforNotes&Recording
12-Oct-2016 ClickforNotes&Recording
5-Oct-2016 ClickforNotes&Recording
28-Sep-2016 ClickforNotes&Recording
14-Sep-2016 ClickforNotes&Recording
7-Sep-2016 ClickforNotes&Recording
31-Aug-2016 ClickforNotes&Recording
26-Aug-2016 ClickforNotes&Recording
17-Aug-2016 ClickforNotes&Recording
10-Aug-2016 ClickforNotes,PPT,&Recording
4-Aug-2016 ClickforNotes,DOC,&Recording
27-Jul-2016 ClickforNotes&Recording
AndyBiermanSharonChisholmAlexanderClemmYanGangPeipeiGuoSusanHaresTimJenkinsBalazsLengyelEinarNilsen-NygaardAlbertoGonzalezPrietoMichaelScharfHectorTrevinoAmbikaPrasadTripathyEricVoitKentWatsenGuangyingZheng(Walker)
TM
Thankyou!
FuncXonalParXXoning
EventNoXficaXons YANGDatastorePush5277Mode Enhanced
TypesofSubscripXon Dynamic DynamicandConfigured SubscripXonsperSession one many
NegoXaXon No YesRPCs create establish,modify,delete
ControlPlaneNoXficaXons None started,suspended,resumed,terminated,modified
DataPlaneNoXficaXons noXficaXon +subscripXon-id push-update,push-change-update
NETCONF Yes RESTConf,HTTP,HTTP2 No Yes
Subs
cripti
on
Tran
spor
t
YANGDatastorePushSubscripXonsforEventNoXficaXonsNETCONFTransportforEventNoXficaXonsRESTCONFTransportforEventNoXficaXons
Legend
CompaXbilitywithRFC-527720
Subscrip&onsforEventNo&fica&ons(BaseSubscripXonDraG)• SupportformanysubscripXons/transport• Dynamic&Configuredstatemachines• MulXpleconfiguredreceivers• Newstreamtypes?• AuthorizaXonmodelperstream• RPCs:Establish,modify,delete• Errorresponses(undererror-info?)• NoXficaXons:started,suspended,resumed,terminated,modified
YANGDatastorePush(includesfuncXonsaboveBaseSubscripXonDraG):• Datastoreon-changeandperiodictriggers• YANGfiltersperRFC6241• AuthorizaXonmodelperobject• NegoXaXon
NETCONFTransportforEventNo&fica&ons• Transportmapping• 5277mode
RESTCONF&HTTPTransportforEventNo&fica&ons• Transportmappings• Subscriber/receiverdifferent• Heartbeatsandclean-up• SubscripXontoHTTP2stream
4DraGsFuncXonalParXXoning
• RFC5277&XPATHfilters• Streamdiscovery• DataPlaneNoXficaXon• 5277mode&YANGmodel• Replay• Monitoring
• Push-update,Push-change-update• Newstreamtypes&stuff• PrioriXzaXon
21