File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 232232 ( route : {
233233 destination = if ( route . dst == "default" ) then "0.0.0.0/0" else route . dst ;
234234 gateway = route . gateway ;
235+ onlink = builtins . elem "onlink" route . flags ;
235236 } )
236237 (
237238 builtins . filter (
251252 routes = builtins . map ( route : {
252253 Destination = route . destination ;
253254 Gateway = route . gateway ;
255+ GatewayOnLink = if ( route . onlink ) then "yes" else "no" ;
254256 } ) interface . value . route ;
255257 } ;
256258 } ) network-config
Original file line number Diff line number Diff line change 7878 systemd . services . apply-network-config = {
7979 wantedBy = [ "multi-user.target" ] ;
8080 description = "Apply run time provided network config." ;
81- wants = [ "network-pre .target" ] ;
82- before = [ "network-pre .target" ] ;
81+ wants = [ "network-online .target" ] ;
82+ after = [ "network-online .target" ] ;
8383 serviceConfig = {
8484 Type = "oneshot" ;
8585 User = "root" ;
115115 ip address add $config dev $name
116116 done
117117
118+ ip link set $name up
119+
118120 for route in $routes; do
119121 protocol=$(echo "$route" | jq -r '.protocol')
120122 dev=$(echo "$route" | jq -r '.dev')
123125 continue
124126 fi
125127
126- config="$(echo $route | jq -r '.dst') via $(echo $route | jq -r '.gateway')"
127- ip route add $config dev $name
128+ args=""
129+ flags=$(echo "$route" | jq -r '.flags')
130+ if [[ $flags == *"onlink"* ]]; then
131+ args="$args onlink"
132+ fi
133+
134+ destination=$(echo $route | jq -r '.dst')
135+ gateway=$(echo $route | jq -r '.gateway')
136+ ip route add $destination via $gateway $args dev $name
128137 done
129138 done
130139 fi
You can’t perform that action at this time.
0 commit comments