Dear all,

we always had said the VTY is a human CLI, while the CTRL interface is for
interfacing with other software.  This was primarily related to asking users
to not parse the VTY output of "show" commands or the like.  For configuration
via VTY, we have to provide a stable interface anyway, as otherwise loading
config files would not be possible across [non-major] software upgrades.

While that is right in principle, the fact that we don't have a generic 
configuration
store / API / MIB means that one would explicitly have to add CTRL command for 
all relevant
settings, which may have been realistic in 2010, but is unrealistic with the 
hundreds of
VTY configuration parameters today.

I was thinking wither it might make sense to add a generic CTRL interface 
GET/SET
for "configuration" mode VTY settings.  This would mean we write code once,
and immediately expose all our VTY nodes to CTRL.

Thinking of the following example done via VTY:

-----------------------------------
OsmoBSC> enable 
OsmoBSC# configure terminal 
OsmoBSC(config)# network 
OsmoBSC(config-net)# bts 0
OsmoBSC(config-net-bts)# trx 1
OsmoBSC(config-net-bts-trx)# timeslot 0
OsmoBSC(config-net-bts-trx-ts)# training_sequence_code 3
-----------------------------------

We could have something like the following CTRL command:

SET network.bts.0.trx.1.timeslot.0.training_sequence_code 3

The devil is a bit in the details of the syntax

* the normal '.' as separator looks generally OK, I think we have [almost?] no
  VTY commands that include a ','

* we somehow need some kind of separator to tell where individual VTY commands 
are
  separated, like

  SET network."bts 0"."trx 1"."timeslot 0".training_sequence_code 3
or
  SET network|bts.0|trx.1|timeslot.0|training_sequence_code 3
or
  SET network#bts.0#trx.1#timeslot.0#training_sequence_code 3
or
  SET network.bts#0.trx#1.timeslot#0.training_sequence_code 3
  SET [email protected]@[email protected]_sequence_code 3

I think the last examples would be more "natural" for existing CTRL interface 
code,
as the dot separat separates tokens, and we simply expand the '#' or '@' to 
spaces in
the context of VTY commands

The generic vty-cfg-via-CTRL code then would basically emulate a user entering
the sequence of commands - including the "exclusion" of not allowing multiple 
concurrent
VTY or vty-cfg-via-CTRL users at the same time

What do you guys think?

Regards,
        Harald

-- 
- Harald Welte <[email protected]>            http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)

Reply via email to