1from pr2modules.netlink import nla
2
3
4class bond(nla):
5    prefix = 'IFLA_'
6    nla_map = (('IFLA_BOND_UNSPEC', 'none'),
7               ('IFLA_BOND_MODE', 'uint8'),
8               ('IFLA_BOND_ACTIVE_SLAVE', 'uint32'),
9               ('IFLA_BOND_MIIMON', 'uint32'),
10               ('IFLA_BOND_UPDELAY', 'uint32'),
11               ('IFLA_BOND_DOWNDELAY', 'uint32'),
12               ('IFLA_BOND_USE_CARRIER', 'uint8'),
13               ('IFLA_BOND_ARP_INTERVAL', 'uint32'),
14               ('IFLA_BOND_ARP_IP_TARGET', 'arp_ip_target'),
15               ('IFLA_BOND_ARP_VALIDATE', 'uint32'),
16               ('IFLA_BOND_ARP_ALL_TARGETS', 'uint32'),
17               ('IFLA_BOND_PRIMARY', 'uint32'),
18               ('IFLA_BOND_PRIMARY_RESELECT', 'uint8'),
19               ('IFLA_BOND_FAIL_OVER_MAC', 'uint8'),
20               ('IFLA_BOND_XMIT_HASH_POLICY', 'uint8'),
21               ('IFLA_BOND_RESEND_IGMP', 'uint32'),
22               ('IFLA_BOND_NUM_PEER_NOTIF', 'uint8'),
23               ('IFLA_BOND_ALL_SLAVES_ACTIVE', 'uint8'),
24               ('IFLA_BOND_MIN_LINKS', 'uint32'),
25               ('IFLA_BOND_LP_INTERVAL', 'uint32'),
26               ('IFLA_BOND_PACKETS_PER_SLAVE', 'uint32'),
27               ('IFLA_BOND_AD_LACP_RATE', 'uint8'),
28               ('IFLA_BOND_AD_SELECT', 'uint8'),
29               ('IFLA_BOND_AD_INFO', 'ad_info'),
30               ('IFLA_BOND_AD_ACTOR_SYS_PRIO', 'uint16'),
31               ('IFLA_BOND_AD_USER_PORT_KEY', 'uint16'),
32               ('IFLA_BOND_AD_ACTOR_SYSTEM', 'hex'),
33               ('IFLA_BOND_TLB_DYNAMIC_LB', 'uint8'))
34
35    class ad_info(nla):
36        nla_map = (('IFLA_BOND_AD_INFO_UNSPEC', 'none'),
37                   ('IFLA_BOND_AD_INFO_AGGREGATOR', 'uint16'),
38                   ('IFLA_BOND_AD_INFO_NUM_PORTS', 'uint16'),
39                   ('IFLA_BOND_AD_INFO_ACTOR_KEY', 'uint16'),
40                   ('IFLA_BOND_AD_INFO_PARTNER_KEY', 'uint16'),
41                   ('IFLA_BOND_AD_INFO_PARTNER_MAC', 'l2addr'))
42
43    class arp_ip_target(nla):
44        fields = (('targets', '16I'), )
45