summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/netlink/route/address.py18
-rw-r--r--python/netlink/route/link.py16
-rw-r--r--python/netlink/route/links/vlan.py17
3 files changed, 42 insertions, 9 deletions
diff --git a/python/netlink/route/address.py b/python/netlink/route/address.py
index 8fab97d..a8da1ed 100644
--- a/python/netlink/route/address.py
+++ b/python/netlink/route/address.py
@@ -147,17 +147,29 @@ class Address(netlink.Object):
@netlink.nlattr('address.flags', type=str, fmt=util.string)
@property
def flags(self):
- """Flags"""
+ """Flags
+
+ Setting this property will *Not* reset flags to value you supply in
+
+ Examples:
+ addr.flags = '+xxx' # add xxx flag
+ addr.flags = 'xxx' # exactly the same
+ addr.flags = '-xxx' # remove xxx flag
+ addr.flags = [ '+xxx', '-yyy' ] # list operation
+ """
flags = capi.rtnl_addr_get_flags(self._rtnl_addr)
return capi.rtnl_addr_flags2str(flags, 256)[0].split(',')
def _set_flag(self, flag):
- if flag[0] == '-':
+ if flag.startswith('-'):
i = capi.rtnl_addr_str2flags(flag[1:])
capi.rtnl_addr_unset_flags(self._rtnl_addr, i)
- else:
+ elif flag.startswith('+'):
i = capi.rtnl_addr_str2flags(flag[1:])
capi.rtnl_addr_set_flags(self._rtnl_addr, i)
+ else:
+ i = capi.rtnl_addr_str2flags(flag)
+ capi.rtnl_addr_set_flags(self._rtnl_addr, i)
@flags.setter
def flags(self, value):
diff --git a/python/netlink/route/link.py b/python/netlink/route/link.py
index 8c87971..b7a377a 100644
--- a/python/netlink/route/link.py
+++ b/python/netlink/route/link.py
@@ -213,17 +213,27 @@ class Link(netlink.Object):
@netlink.nlattr('link.flags', type=str, fmt=util.string)
@property
def flags(self):
- """Flags"""
+ """Flags
+ Setting this property will *Not* reset flags to value you supply in
+ Examples:
+ link.flags = '+xxx' # add xxx flag
+ link.flags = 'xxx' # exactly the same
+ link.flags = '-xxx' # remove xxx flag
+ link.flags = [ '+xxx', '-yyy' ] # list operation
+ """
flags = capi.rtnl_link_get_flags(self._rtnl_link)
return capi.rtnl_link_flags2str(flags, 256)[0].split(',')
def _set_flag(self, flag):
- if flag[0] == '-':
+ if flag.startswith('-'):
i = capi.rtnl_link_str2flags(flag[1:])
capi.rtnl_link_unset_flags(self._rtnl_link, i)
- else:
+ elif flag.startswith('+'):
i = capi.rtnl_link_str2flags(flag[1:])
capi.rtnl_link_set_flags(self._rtnl_link, i)
+ else:
+ i = capi.rtnl_link_str2flags(flag)
+ capi.rtnl_link_set_flags(self._rtnl_link, i)
@flags.setter
def flags(self, value):
diff --git a/python/netlink/route/links/vlan.py b/python/netlink/route/links/vlan.py
index c9fe2a7..bb339d0 100644
--- a/python/netlink/route/links/vlan.py
+++ b/python/netlink/route/links/vlan.py
@@ -32,15 +32,26 @@ class VLANLink(object):
@netlink.nlattr('link.vlan.flags', type=str)
@property
def flags(self):
- """vlan flags"""
+ """ VLAN flags
+ Setting this property will *Not* reset flags to value you supply in
+ Examples:
+ link.flags = '+xxx' # add xxx flag
+ link.flags = 'xxx' # exactly the same
+ link.flags = '-xxx' # remove xxx flag
+ link.flags = [ '+xxx', '-yyy' ] # list operation
+ """
flags = capi.rtnl_link_vlan_get_flags(self._link)
return capi.rtnl_link_vlan_flags2str(flags, 256)[0].split(',')
def _set_flag(self, flag):
- i = capi.rtnl_link_vlan_str2flags(flag[1:])
- if flag[0] == '-':
+ if flag.startswith('-'):
+ i = capi.rtnl_link_vlan_str2flags(flag[1:])
capi.rtnl_link_vlan_unset_flags(self._link, i)
+ elif flag.startswith('+'):
+ i = capi.rtnl_link_vlan_str2flags(flag[1:])
+ capi.rtnl_link_vlan_set_flags(self._link, i)
else:
+ i = capi.rtnl_link_vlan_str2flags(flag)
capi.rtnl_link_vlan_set_flags(self._link, i)
@flags.setter