@@ -97,9 +97,12 @@ let parse_dns_config args =
97
97
let domains = get_list_from ~sep: " " ~key: " DOMAIN" args in
98
98
(nameservers, domains)
99
99
100
- let write_manage_iface_to_inventory bridge_name =
100
+ let write_manage_iface_to_inventory bridge_name management_address_type =
101
101
info " Writing management interface to inventory: %s" bridge_name ;
102
- Inventory. update Inventory. _management_interface bridge_name
102
+ Inventory. update Inventory. _management_interface bridge_name ;
103
+ info " Writing management address type to inventory: %s"
104
+ management_address_type ;
105
+ Inventory. update Inventory. _management_address_type management_address_type
103
106
104
107
let read_management_conf interface_order =
105
108
try
@@ -142,6 +145,22 @@ let read_management_conf interface_order =
142
145
(fun x -> if x.name = device then Some x.position else None )
143
146
order
144
147
in
148
+ let (ipv4_conf, ipv4_gateway), (ipv6_conf, ipv6_gateway) =
149
+ match (List. assoc_opt " MODE" args, List. assoc_opt " MODEV6" args) with
150
+ | None , None ->
151
+ error " %s: at least one of 'MODE', 'MODEV6' needs to be specified"
152
+ __FUNCTION__ ;
153
+ raise Read_error
154
+ | v4 , v6 ->
155
+ (parse_ipv4_config args v4, parse_ipv6_config args v6)
156
+ in
157
+ let management_address_type =
158
+ (* Default to IPv4 unless we have only got an IPv6 admin interface *)
159
+ if ipv4_conf = None4 && ipv6_conf <> None6 then
160
+ " IPv6"
161
+ else
162
+ " IPv4"
163
+ in
145
164
let bridge_name =
146
165
let inventory_bridge =
147
166
try Some (Inventory. lookup Inventory. _management_interface)
@@ -160,23 +179,14 @@ let read_management_conf interface_order =
160
179
in
161
180
debug " No management bridge in inventory file... using %s" bridge ;
162
181
if not device_already_renamed then
163
- write_manage_iface_to_inventory bridge ;
182
+ write_manage_iface_to_inventory bridge management_address_type ;
164
183
bridge
165
184
| Some bridge ->
166
185
debug " Management bridge in inventory file: %s" bridge ;
167
186
bridge
168
187
in
169
188
let mac = Network_utils.Ip. get_mac device in
170
189
let dns = parse_dns_config args in
171
- let (ipv4_conf, ipv4_gateway), (ipv6_conf, ipv6_gateway) =
172
- match (List. assoc_opt " MODE" args, List. assoc_opt " MODEV6" args) with
173
- | None , None ->
174
- error " %s: at least one of 'MODE', 'MODEV6' needs to be specified"
175
- __FUNCTION__ ;
176
- raise Read_error
177
- | v4 , v6 ->
178
- (parse_ipv4_config args v4, parse_ipv6_config args v6)
179
- in
180
190
181
191
let phy_interface = {default_interface with persistent_i= true } in
182
192
let bridge_interface =
0 commit comments