Subject: [i2rs] Primitive and complex objects in devices

From: Dean Bogdanovic <[email-masked]>
Date: Thu, 11 Dec 2014 19:24:28 +0000

Hi,

We are trying to figure out what protocol to use in order to manage devices via i2rs agent. I would like to add few things for consideration. Will i2rs agent manage only simple objects or also complex object? What is a primitive or complex objects?

Primitive objects are network constructs that are property of single daemon, example

route
routing table
routing instance
interface
filter
policer
scheduler

Using above primitive objects, a complex object can be created. Lets take example L2VPN. For L2VPN, routing instance, interface, route, has to be configured in a specific way. The logic on how the configuration is read by the daemons is already present in the device and by editing configuration, device state is changed.

When editing configuration, everything what is supported by the device can be managed. If we agree that I2RS agents want to manage all supported features, then going through configuration is the best way to go. If we decide that I2RS agent will be able to change the state of primitive objects only and that can be done by by-passing configuration and talking directly to the daemons, then we can look into other mechanisms how to communicate between I2RS agent and other device daemons.

Or take another example:

If somebody wants to run BGP as external process and change the device state via I2RS agent, can they do correct device changes using only primitive objects?

Dean

---

From: "Fedyk, Don" <[email-masked]>
Date: Fri, 12 Dec 2014 14:29:28 +0000

Hi Dean

I think the distinction you are making is based on an override capability and ownership. 
Primitive objects owned by configuration can be overridden by I2RS agents. 
Complex objects owned by configuration would typically not be overridden by I2RS agents. 

So there  is an implied ownership aspect. 

In your BGP case the I2RS agent could own both primitive and complex objects to allow the computation of BGP to be performed elsewhere. 
In this case there is no override because configuration is unaware of the objects and has no ownership. 

In all cases the I2RS modifications are ephemeral and there is no configuration store or save just modification of running . 

Is that what you are thinking? 

Regards,
Don

> -----Original Message-----
> From: i2rs [mailto:[email-masked]] On Behalf Of Dean Bogdanovic
> Sent: Thursday, December 11, 2014 2:24 PM
> To: <[email-masked]>
> Subject: [i2rs] Primitive and complex objects in devices
> 
> Hi,
> 
> We are trying to figure out what protocol to use in order to manage devices
> via i2rs agent. I would like to add few things for consideration. Will i2rs agent
> manage only simple objects or also complex object? What is a primitive or
> complex objects?
> 
> Using above primitive objects, a complex object can be created. Lets take
> example L2VPN. For L2VPN, routing instance, interface, route, has to be
> configured in a specific way. The logic on how the configuration is read by the
> daemons is already present in the device and by editing configuration, device
> state is changed.
> 
> When editing configuration, everything what is supported by the device can
> be managed. If we agree that I2RS agents want to manage all supported
> features, then going through configuration is the best way to go. If we decide
> that I2RS agent will be able to change the state of primitive objects only and
> that can be done by by-passing configuration and talking directly to the
> daemons, then we can look into other mechanisms how to communicate
> between I2RS agent and other device daemons.
> 
> Or take another example:
> 
> If somebody wants to run BGP as external process and change the device
> state via I2RS agent, can they do correct device changes using only primitive
> objects?
> 
> Dean
> 
> _______________________________________________
> i2rs mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/i2rs

---

From: Dean Bogdanovic <[email-masked]>
Date: Fri, 12 Dec 2014 17:29:58 +0000

Don,

Yes, you are right

> Primitive objects owned by configuration can be overridden by I2RS agents. 

Just to be clear, I2RS agent could insert another object that would take priority over the object created by the configuration. I don't want to modify objects owned by configuration in any way.
> So there  is an implied ownership aspect. 

Yes
> In this case there is no override because configuration is unaware of the objects and has no ownership. 

Correct
> Is that what you are thinking? 

Yup

---

From: "Fedyk, Don" <[email-masked]>
Date: Fri, 12 Dec 2014 17:44:04 +0000

Hi Dean

Then what you are saying would work AFAIK, the only question is: Is I2RS override absolute or is configuration allowed to undo the override with a force option?

Cheers
Don 

> From: Dean Bogdanovic [mailto:[email-masked]]
> Sent: Friday, December 12, 2014 12:30 PM
> To: Fedyk, Don
> Cc: <[email-masked]>
> Subject: Re: Primitive and complex objects in devices
> 
> Don,
> 
> Yes, you are right
> Just to be clear, I2RS agent could insert another object that would take
> priority over the object created by the configuration. I don't want to modify
> objects owned by configuration in any way.
> > In your BGP case the I2RS agent could own both primitive and complex
> objects to allow the computation of BGP to be performed elsewhere.
> > In all cases the I2RS modifications are ephemeral and there is no
> configuration store or save just modification of running .
> >
> >> We are trying to figure out what protocol to use in order to manage
> >> devices via i2rs agent. I would like to add few things for
> >> consideration. Will i2rs agent manage only simple objects or also
> >> complex object? What is a primitive or complex objects?
> >>
> >> Using above primitive objects, a complex object can be created. Lets
> >> take example L2VPN. For L2VPN, routing instance, interface, route,
> >> has to be configured in a specific way. The logic on how the
> >> configuration is read by the daemons is already present in the device
> >> and by editing configuration, device state is changed.
> >>
> >> When editing configuration, everything what is supported by the
> >> device can be managed. If we agree that I2RS agents want to manage
> >> all supported features, then going through configuration is the best
> >> way to go. If we decide that I2RS agent will be able to change the
> >> state of primitive objects only and that can be done by by-passing
> >> configuration and talking directly to the daemons, then we can look
> >> into other mechanisms how to communicate between I2RS agent and
> other device daemons.
> >>
> >> Or take another example:
> >>
> >> If somebody wants to run BGP as external process and change the
> >> device state via I2RS agent, can they do correct device changes using
> >> only primitive objects?
> >>
> >> Dean
> >>

---

From: Dean Bogdanovic <[email-masked]>
Date: Fri, 12 Dec 2014 19:08:33 +0000

Configuration is allowed to undo the override with a force option.

Dean