summaryrefslogtreecommitdiffstats
path: root/rc.inet1
Commit message (Collapse)AuthorAgeFilesLines
* Added USE_RA[x] option to explicitly enable/disable RA supportDarren 'Tadgy' Austin2018-11-261-3/+12
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Protect blocks of code by testing whether ipv6 is activeDarren 'Tadgy' Austin2018-11-251-20/+30
| | | | | | | | | | This has the effect of allowing someone to disable ipv6 entirely, and the script do the right thing. Move the enabling of DAD into the correct section - no idea how it ended up in the ipv4 block of code. D'oh. Signed-off-by: Robby Workman <rworkman@slackware.com>
* Various fixups for nomenclature - see full commit messageDarren 'Tadgy' Austin2018-11-251-14/+14
| | | | | | | | | | | | | | | | * USE_AUTOCONF->USE_SLAAC to be more consistent with IPv6 terminology * PREFIX6->PREFIXLEN to be more consistent with IPv6 terminology Thanks to David Spencer (idlemoor) for the patch to the above * AUTOCONF_TIMEOUT->SLAAC_TIMEOUT to be consistent with USE_SLAAC change Since some options for IPv6 no longer end in '6', we can relax the naming of others, so these make sense: IPADDR6->IP6ADDR ; IPALIASES6->IP6ALIASES Update to rc.inet1.conf example file - thanks to David Spencer. Signed-off-by: Robby Workman <rworkman@slackware.com>
* Move interface module loading into a 'pre-load' sectionDarren 'Tadgy' Austin2018-11-251-9/+21
| | | | | | | | | Also fix loading of interface modules - previously just $i was used, where it should have been ${i%%:*} Also added pre-loading of ipv6 module Signed-off-by: Robby Workman <rworkman@slackware.com>
* Mitigate a race condition with Duplicate Address DetectionDarren 'Tadgy' Austin2018-11-251-4/+12
| | | | | | | | | | https://www.agwa.name/blog/post/beware_the_ipv6_dad_race_condition This removes the need to sleep for 3 seconds after setting up the interfaces, but does mean we lose detection of address clashes on the inteface - it's a trade off Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: sleep for 3 seconds after setting all the interface options/IPsDarren 'Tadgy' Austin2018-11-251-0/+4
| | | | | | | | | | | In testing here, this was necessary to prevent daemons reporting 'Cannot assign requested address' for IPv6 addresses when they attempt to bind() to the interface address. This only seems to affect v6 addresses - v4 addresses seem to be immediately available to bind() - but a 3 second pause shouldn't hurt given that the other methods of configuration can block for up to 15 seconds. Signed-off-by: Robby Workman <rworkman@slackware.com>
* Added ipv6 gateway up/down functionDarren 'Tadgy' Austin2018-11-251-4/+15
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Added support for AUTOCONF6_TIMEOUT[x] optionDarren 'Tadgy' Austin2018-11-251-4/+5
| | | | | | Removed unneeded sleep when taking interface down Signed-off-by: Robby Workman <rworkman@slackware.com>
* Move AUTOCONF6 block to favour dynamic configuration over fixed IPDarren 'Tadgy' Austin2018-11-251-25/+23
| | | | | | This is more in line with Slackware tradition Signed-off-by: Robby Workman <rworkman@slackware.com>
* Flush and down interface if configuration failsDarren 'Tadgy' Austin2018-11-251-2/+12
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Various fixes and enhancements (see full commit message)Darren 'Tadgy' Austin2018-11-251-67/+63
| | | | | | | | | | | | | | | * Rename rc.inet1.conf options USE_STATELESS6 -> USE_AUTOCONF6 NETMASK6 -> PREFIX6 * Shell syntax and comment fixes * Removed some redundant code * Sleep after loading the network card module to allow it to register * Added error checking when adding IPs to an interface * Modify if_down() to bring all types of interface down * Only do MTU and PROMISC set up if the interface comes up * No longer skip alias config if using USE_AUTOCONF. Signed-off-by: Robby Workman <rworkman@slackware.com>
* Use -4 when querying/setting routesDarren 'Tadgy' Austin2018-11-251-4/+5
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Increase sleep time after dhcpcd is killedDarren 'Tadgy' Austin2018-11-251-0/+1
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* USE_STATELESS->USE_STATELESS6 - D'oh. Some bugfixes alsoDarren 'Tadgy' Austin2018-11-251-11/+10
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Finish up dhcp start blockDarren 'Tadgy' Austin2018-11-251-4/+6
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Only add IPALIASES{,6} if the interface came upDarren 'Tadgy' Austin2018-11-251-21/+23
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Modified interface takedown code in if_down()Darren 'Tadgy' Austin2018-11-251-11/+27
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Changed if_up logic to allow interfaces to be configured by any methodDarren 'Tadgy' Austin2018-11-251-35/+43
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Add checks to enable -4 or -6 options to dhcpcdDarren 'Tadgy' Austin2018-11-251-0/+5
| | | | | | This begins addressing concerns raised in af0a481ef072d220a58e Signed-off-by: Robby Workman <rworkman@slackware.com>
* Change DHCP_OPTIONS into an arrayDarren 'Tadgy' Austin2018-11-251-9/+10
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Removed old code and comments from dhcp sectionDarren 'Tadgy' Austin2018-11-251-32/+2
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Clean up commentary output and commentsDarren 'Tadgy' Austin2018-11-251-20/+29
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Update early skipping of unconfigured interfaces checkDarren 'Tadgy' Austin2018-11-251-3/+5
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Added IPALIASES setting for v4 and v6; removed old IPALIASES codeDarren 'Tadgy' Austin2018-11-251-11/+22
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Add fixed IP configuration blockDarren 'Tadgy' Austin2018-11-251-10/+25
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Move set of PROMISCIOUS mode to end of interface config blockDarren 'Tadgy' Austin2018-11-251-8/+3
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Set MTU after interface is up (override dhcp server)Darren 'Tadgy' Austin2018-11-251-4/+4
| | | | | | | DHCP may have set the MTU to what the DHCP server advertises, but our override should take precedence. Signed-off-by: Robby Workman <rworkman@slackware.com>
* Consider SLAAC IPs when determining interface up statusDarren 'Tadgy' Austin2018-11-251-1/+1
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Return immediately if interface has no defined config in rc.inet1.confDarren 'Tadgy' Austin2018-11-251-0/+1
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Add stateless RA auto configuration blockDarren 'Tadgy' Austin2018-11-251-0/+10
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Set autoconf to 0 for dhcp/fixed IP, 1 for stateless autoconfigDarren 'Tadgy' Austin2018-11-251-6/+5
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Don't unconditionally bring interface upDarren 'Tadgy' Austin2018-11-251-3/+0
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Account for IPv6 options in interface configuration logicDarren 'Tadgy' Austin2018-11-251-2/+6
| | | | | | | TODO: I (RW) am not convinced that this will behave correctly if the ipv6 address is static while ipv4 is dynamic, or vice versa. Signed-off-by: Robby Workman <rworkman@slackware.com>
* Flush bridge interface address before destroying itDarren 'Tadgy' Austin2018-11-251-2/+2
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Added code to enable/disable v6 autoconf for an interfaceDarren 'Tadgy' Austin2018-11-251-0/+8
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Account for IPv6 addresses in determination of interface statusDarren 'Tadgy' Austin2018-11-251-2/+2
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Removed trailing whitespaces to kill ugly highlights in nanoDarren 'Tadgy' Austin2018-11-251-2/+2
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* Fix up setting of IPALIASES and update docscurrent-20180531Darren Austin2018-05-241-3/+9
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1*: Allow setting an interface in promiscuous modeDarren Austin2018-05-241-7/+17
| | | | | | | This is needed for container networking - the bridge for it must be in promiscuous mode. Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: set the bcast addr and flush ip addr on shutdowncurrent-20180318Robby Workman2018-03-181-2/+4
| | | | | | Thanks to Markus Wiesner. Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Fix typo ( $1 --> $i )current-20171128Jakub Jankowski2017-11-261-1/+1
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Check for iface in /sys/class/net, not /proc/net/devJakub Jankowski2017-11-211-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a slight problem with things like grep lo: /proc/net/dev especially with tun/tap devices with can have arbitrary names. Consider a scenario where you name your tap iface "trololo": $ grep -c lo: /proc/net/dev 2 $ To fix this (quite hypothetical, but still) problem, instead of simple grepping in /proc/net/dev, check of sysfs path existence (/sys/class/net/<interface>). Same fix in if_up() and if_down() for non-loopback interfaces. While there, also strip colon-whatever from interface name (what I think was the original idea behind a construct like grep $(echo ${1}: | cut -f 1 -d :): /proc/net/dev) by using parameter expansion: ${1%%:*} will remove the longest suffix matching ":*", ie. colon-and-everything-after. This is supported by POSIX: http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html Alternative solution would be to change the grep pattern to grep '^ *lo:' /proc/net/dev Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Remove unnecessary unset numJakub Jankowski2017-11-211-2/+0
| | | | | | The only places using "num" already clear it with "num=0" Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Factor DEBUG_ETH_UP logging to a separate functionJakub Jankowski2017-11-211-15/+12
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Use ${array[*]} not ${array[@]} to produce a stringJakub Jankowski2017-11-211-1/+1
| | | | | | | | | | | | | | | This is the correct usage to produce one string from all elements of an array. foo[0]=b foo[1]=a foo[2]=r "${foo[@]}" here would mean "b" "a" "r" "${foo[*]}" however: "b a r", and that's what we mean when logging it. Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Avoid de-/configuring ifaces with indexes >=MAXNICSJakub Jankowski2017-11-211-0/+12
| | | | | | | | | | | | | | | | | | | | | The code around MAXNICS currently only uses it to populate first $MAXNICS elements of IFNAME array, which is later used to match interface name to index used to access all other arrays. If you configure IPADDR[6], this code doesn't find a matching entry in IFNAME but doesn't do anything about it. This works by accident, because iteration variable "i" stays at "6" after exiting the loop. But when you configure IPADDR[7], it will still stay on "6", and will use ...[6] values to configure that interface, which is potentially damaging. Better safe than sorry: let's check for this overflow and do nothing, instead of potentially doing the wrong thing. Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Avoid code duplication by combining case/esacJakub Jankowski2017-11-211-30/+9
| | | | | | | | | | | | | | There's no reason to have separate cases for start) ... ;; up) ... ;; if they both have the same bodies. Let's combine such cases to avoid code duplication. Also, this is that one time where quoting isn't really needed :) Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Add missing 'dev' keywordJakub Jankowski2017-11-211-4/+4
| | | | | | Also, replace "ip addr" with "ip address" for consistency Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1: Remove unnecessary $(echo)Jakub Jankowski2017-11-211-4/+4
| | | | Signed-off-by: Robby Workman <rworkman@slackware.com>
* rc.inet1*: Simplify virtif_* code, add note to example configJakub Jankowski2017-11-211-15/+8
| | | | | | | | | | | | | There is a built-in way of counting the number of elements in an array: ${#arrayname[@]}. Use this, and the fact that "for i in $(seq 0 -1)" will not evaluate body of the loop even once, to simplify code and get rid of virtif_determine(). While at it, add a note to rc.inet1.conf mentioning the necessity of keeping array indexes monotonically increasing (from 0), otherwise the code will fail (so would the original code). Signed-off-by: Robby Workman <rworkman@slackware.com>