#!/bin/bash # -------------------------------------------------------------------------- # # Copyright 2010-2014, C12G Labs S.L. # # # # Licensed under the Apache License, Version 2.0 (the "License"); you may # # not use this file except in compliance with the License. You may obtain # # a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # #--------------------------------------------------------------------------- # # Gets IP address from a given MAC mac2ip() { mac=$1 let ip_a=0x`echo $mac | cut -d: -f 3` let ip_b=0x`echo $mac | cut -d: -f 4` let ip_c=0x`echo $mac | cut -d: -f 5` let ip_d=0x`echo $mac | cut -d: -f 6` ip="$ip_a.$ip_b.$ip_c.$ip_d" echo $ip } mask2cidr() { mask=$1 nbits=0 IFS=. for dec in $mask ; do case $dec in 255) let nbits+=8;; 254) let nbits+=7 ; break ;; 252) let nbits+=6 ; break ;; 248) let nbits+=5 ; break ;; 240) let nbits+=4 ; break ;; 224) let nbits+=3 ; break ;; 192) let nbits+=2 ; break ;; 128) let nbits+=1 ; break ;; 0);; *) echo "Error: $dec is not recognised"; exit 1 esac done echo "$nbits" } # Gets the network part of an IP get_network() { network=$(get_iface_var "NETWORK") if [ -z "$network" ]; then network="$(echo $IP | cut -d'.' -f1,2,3).0" fi echo $network } # Gets the network mask get_mask() { mask=$(get_iface_var "MASK") if [ -z "$mask" ]; then mask="255.255.255.0" fi echo $mask } # Gets device MTU get_mtu() { mtu=$(get_iface_var "MTU") echo $mtu } is_gateway() { if [ -z "$GATEWAY_IFACE_NUM" ]; then true else [ "$IFACE_NUM" = "$GATEWAY_IFACE_NUM" ] fi } # Gets the network gateway get_gateway() { if is_gateway; then gateway=$(get_iface_var "GATEWAY") if [ -z "$gateway" ]; then if [ "$DEV" = "eth0" ]; then net_prefix=$(echo $NETWORK | cut -d'.' -f1,2,3) gateway="${net_prefix}.1" fi fi echo $gateway fi } # Gets the network gateway6 get_gateway6() { if is_gateway; then get_iface_var "GATEWAY6" fi } get_ip() { ip=$(get_iface_var "IP") echo $ip } get_iface_var() { var_name="${UPCASE_DEV}_$1" var=$(eval "echo \"\${$var_name}\"") echo $var } gen_iface_conf() { cat < /etc/systemd/network/${DEV}.network done } gen_network_configuration