如何在YANG文件中让MAC地址类型支持空字符串默认值
解决YANG中MAC地址类型变量支持空字符串默认值的方法
要让使用aye:mac-address-type类型的变量同时接受空字符串作为默认值,有两种可行方案:
方案一:修改原typedef的正则规则
直接修改mac-address-type的pattern,让正则表达式同时匹配空字符串和合法MAC地址。修改后的代码如下:
typedef mac-address-type { type string { pattern '""|[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}'; } }
之后在定义变量时,直接设置默认值即可:
leaf example-mac { type aye:mac-address-type; default ""; }
这种方式会让所有使用mac-address-type的变量都支持空字符串,适合全局需要该特性的场景。
方案二:在变量定义时使用Union类型
如果不想修改原有的mac-address-type定义,可以在变量层级通过union类型,将原MAC类型和仅允许空字符串的string类型组合:
leaf example-mac { type union { type aye:mac-address-type; type string { pattern "^$"; } } default ""; }
这种方式仅对当前变量生效,不会影响其他使用mac-address-type的节点,适合局部需要支持空字符串的场景。
内容的提问来源于stack exchange,提问作者suneet saini
相关产品推荐
相关产品推荐

