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 slave 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 slave through the last.
37          - name: ActiveBackup
38            description: >
39                In this mode, only one slave in the bond is active.
40                The other one will become active, only when the active slave fails.
41          - name: XOR
42            description: >
43                Transmit based on selectable hashing algorithm.
44                The default policy is a simple source+destination MAC address algorithm.
45          - name: Broadcast
46            description: >
47                Transmits everything on all slave interfaces.
48          - name: Dynamic
49            description: >
50                IEEE 802.3ad Dynamic link aggregation.
51          - name: TLB
52            description: >
53                The outgoing traffic is distributed according to the current load on each slave.
54          - name: ALB
55            description: >
56                Incoming/outgoing traffic is distributed according to the current load on each slave.
57
58    - name: HashPolicy
59      description: >
60          Possible policy types.
61      values:
62          - name: Layer2
63            description: >
64                This policy uses XOR of hardware MAC addresses and packet type ID
65                field to generate the hash.
66          - name: Layer2Plus3
67            description: >
68                This policy uses a combination of layer2 and layer3
69                protocol information to generate the hash.
70          - name: Layer3Plus4
71            description: >
72                This policy uses upper layer protocol information,
73                when available, to generate the hash.
74          - name: Encap2Plus3
75            description: >
76                This policy uses the same formula as layer2+3 but it
77                relies on skb_flow_dissect to obtain the header fields
78                which might result in the use of inner headers if an
79                encapsulation protocol is used.
80          - name: Encap3Plus4
81            description: >
82                This policy uses the same formula as layer3+4 but it
83                relies on skb_flow_dissect to obtain the header fields
84                which might result in the use of inner headers if an
85                encapsulation protocol is used.
86