Hello Vadim.
My initial idea was that the absence of attributes (in
the command
definition and thus in the VTY reference) implicitly indicates that a
given VTY command in the 'config' node comes into effect immediately...
I also think that this makes sense, because as far as I can see this
predefinition would also affect interactive VTY commands. Those always
have an immediate effect. Also we prefer if commands apply immediately
when the implementation permits it.
struct cmd_node foo_node = {
.node = FOO_NODE,
.prompt = "%s(config-net)# ",
.vtysh = 1,
.usrattr = (1 << FOO_VTY_ATTR_RESTART_FULL), // (!)
};
This way a DEFUN() command definition would inherit foo_node.usrattr,
and a DEFUN_USRATTR() command definition would override it.
Makes sense I think, however, this will be more important in the future.
Right now we need to look at each VTY command individually and check
what changes it causes and when. I have now done the common part of
osmo-bts, but for the moment I am using comments until the API is stable
again.
ACK. We can also agree that generic (pre-defined)
attributes use upper
case letters, while the application specific ones use lower case?
Probably makes sense, there will also be never collisions should we add
more predefined attributes later.
What do you think about these ideas? If you agree,
and nobody has any
objections, I can quickly implement them in libosmocore. Would be also
nice to know what other developers think. Neels, Harald, Pau, Daniel?
I do not have any counter-arguments. I think your ideas make sense.
I still question myself if CMD_ATTR_APPLY_FULL_RESTART should be used on
every CONFIGURE TERMINAL command. A full restart will always cause the
changes to be applied, or is the policy only to set the attribute of the
minimal condition that causes the change to apply?.
Best regards,
Philipp
--
Philipp Maier <pmaier(a)sysmocom.de>
http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte