Tailf:dependency "."; is deprecated in confd 6.4.3?

leaf ip {
	description "IP address.";
	type string;
	must "(.[re-match(., '\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}')])"
		error-message "IP address must be of form xxx.xxx.xxx.xxx";
		tailf:dependency ".";

Is the tailf:dependency “.”; is deprecated in confd 6.4.3? because in earlier versions of confd it was compiling successfully but now it gives error warning: illegal character after \ on line must("

I guess it is not related to tailf:dependency "." but to non backward compatible correction in ConfD 6.4.

 - Toolchain: The treatment of backslash in double quoted strings in YANG
    modules has changed.  In YANG 1.1, it is illegal to have any character
    except 'n' 't' '"' or '\' immediately after the backslash.  In YANG 1
    this is a warning (see

    The confdc compiler now detects this and gives a warning if such a
    string is found in a YANG version 1 module, and an error for a YANG
    version 1.1 module.

Try to replace all slash in the must statement with doubleslash (\\).


A perhaps nicer solution readability-wise is to make the YANG string single-quoted, and the XPath string double-quoted:

must '(.[re-match(., "\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}")])'

I guess I should also point out that \d in an XSD regexp does not mean the same as in e.g. Perl - it includes lots of other Unicode “digit” representations than ASCII 0-9. It may be better to use [0-9] instead. And of course using the ‘pattern’ statement instead of a ‘must’ with re-match() may be preferable - in my opinion it is clearer; it will also result in a “syntax” error rather than a validation error in case of non-match, which in my opinion is “better” for interactive interfaces like CLI.

Thanks a lot !! yes after changing the \ with \\ the warning went away.