1description: >
2    This defines network bonding parameters.
3
4# TODO Fix it through https://github.com/openbmc/openbmc/issues/1438
5# creatable: true
6
7properties:
8    - name: InterfaceName
9      type: string
10      description: >
11          Name of the interface.
12    - name: BondedInterfaces
13      type: array[string]
14      description: >
15          Interfaces which needs to be bonded.
16    - name: Mode
17      type: enum[self.BondingMode]
18      description: >
19          Network interface bonding modes.
20      default: RoundRobin
21    - name: TransmitHashPolicy
22      type: enum[self.HashPolicy]
23      description:
24          Selects the transmit hash policy to use for target selection in
25          balance-xor, 802.3ad, and tlb modes.
26      default: Layer2
27
28enumerations:
29    - name: BondingMode
30      description: >
31          Possible bonding mode types.
32      values:
33          - name: RoundRobin
34            description: >
35                It is the default mode,in this mode system transmits packets in
36                sequential order from the first available target through the
37                last.
38          - name: ActiveBackup
39            description: >
40                In this mode, only one target in the bond is active. The other
41                one will become active, only when the active target fails.
42          - name: XOR
43            description: >
44                Transmit based on selectable hashing algorithm. The default
45                policy is a simple source+destination MAC address algorithm.
46          - name: Broadcast
47            description: >
48                Transmits everything on all target interfaces.
49          - name: Dynamic
50            description: >
51                IEEE 802.3ad Dynamic link aggregation.
52          - name: TLB
53            description: >
54                The outgoing traffic is distributed according to the current
55                load on each target.
56          - name: ALB
57            description: >
58                Incoming/outgoing traffic is distributed according to the
59                current load on each target.
60
61    - name: HashPolicy
62      description: >
63          Possible policy types.
64      values:
65          - name: Layer2
66            description: >
67                This policy uses XOR of hardware MAC addresses and packet type
68                ID field to generate the hash.
69          - name: Layer2Plus3
70            description: >
71                This policy uses a combination of layer2 and layer3 protocol
72                information to generate the hash.
73          - name: Layer3Plus4
74            description: >
75                This policy uses upper layer protocol information, when
76                available, to generate the hash.
77          - name: Encap2Plus3
78            description: >
79                This policy uses the same formula as layer2+3 but it relies on
80                skb_flow_dissect to obtain the header fields which might result
81                in the use of inner headers if an encapsulation protocol is
82                used.
83          - name: Encap3Plus4
84            description: >
85                This policy uses the same formula as layer3+4 but it relies on
86                skb_flow_dissect to obtain the header fields which might result
87                in the use of inner headers if an encapsulation protocol is
88                used.
89