57 lines
1.6 KiB
Promela
57 lines
1.6 KiB
Promela
|
<require-service <daemon interface-monitor>>
|
||
|
|
||
|
<require-service <milestone network>>
|
||
|
<depends-on <milestone network> <service-state <daemon interface-monitor> ready>>
|
||
|
|
||
|
<configure-interface "lo" <static "127.0.0.1/8">>
|
||
|
|
||
|
? <configure-interface ?ifname <static ?ipaddr>> [
|
||
|
! <exec ["@ip@" "address" "add" "dev" $ifname $ipaddr]>
|
||
|
?- ! <exec ["@ip@" "address" "del" "dev" $ifname $ipaddr] never>
|
||
|
]
|
||
|
|
||
|
? <configure-interface ?ifname <dhcp>> [
|
||
|
<require-service <daemon <udhcpc $ifname>>>
|
||
|
]
|
||
|
|
||
|
? <configure-route ?addressFamily ?prefix ?iface ?gateway> [
|
||
|
! <exec ["@ip@" "route" "add" $prefix "via" $gateway "dev" $iface]>
|
||
|
?- ! <exec ["@ip@" "route" "del" $prefix "via" $gateway "dev" $iface]>
|
||
|
]
|
||
|
|
||
|
? <run-service <daemon <udhcpc ?ifname>>> [
|
||
|
<daemon <udhcpc $ifname> ["@udhcpc@" "-i" $ifname "-fR"]>
|
||
|
]
|
||
|
|
||
|
<daemon interface-monitor {
|
||
|
argv: "@interface_monitor@"
|
||
|
protocol: application/syndicate
|
||
|
}>
|
||
|
|
||
|
? <machine-dataspace ?machine> [
|
||
|
? <service-object <daemon interface-monitor> ?cap> [
|
||
|
$cap {
|
||
|
machine: $machine
|
||
|
}
|
||
|
]
|
||
|
|
||
|
$machine ? <interface ?ifname _ _ _ _ _ _> [
|
||
|
$log ! <log "-" { saw-machine-interface: $ifname }>
|
||
|
$config [
|
||
|
! <exec ["@ip@" "link" "set" $ifname "up"]>
|
||
|
?- ! <exec ["@ip@" "link" "set" $ifname "down"] never>
|
||
|
]
|
||
|
]
|
||
|
|
||
|
$machine ? <interface ?ifname _ normal up up carrier _> [
|
||
|
$config <configure-interface $ifname <dhcp>>
|
||
|
]
|
||
|
$machine ? <interface ?ifname _ normal up unknown carrier _> [
|
||
|
$config <configure-interface $ifname <dhcp>>
|
||
|
]
|
||
|
|
||
|
$machine ? <route ?addressFamily default _ _ _ _> [
|
||
|
$config <default-route $addressFamily>
|
||
|
]
|
||
|
]
|