FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 04-23-2008, 03:21 PM
Roy Marples
 
Default config_eth0 deprecated - new name?

OK, it seems that hard lines in multipart configs seem to be an issue, so I'm
doing this now.

For a summary of why we're using hard lines you can read this thread
http://thread.gmane.org/gmane.linux.gentoo.devel/45756/focus=45765

Basically, just using whitespace to seperate configs is nice and simple.
What's more is everyone understands it. With CIDR notation, this is possible.
For routes, it's a little more tricky as there are two values in use.

config_eth0=("1.2.3.4 netmask 255.255.255.0"
"5.6.7.8 netmask 255.255.0.0" )
routes_eth0=("1.2.4.0 netmask 255.255.255.0 gw 1.2.3.6"
"5.6.7.9 gw 5.6.7.10"
"default gw 1.2.3.1")

becomes

config_eth0="1.2.3.4 netmask 255.255.255.0
5.6.7.8 netmask 255.255.0.0"
routes_eth0="1.2.4.0 netmask 255.255.255.0 gw 1.2.3.6
5.6.7.9 gw 5.6.7.10
default gw 1.2.3.1"

becomes

address_eth0="1.2.3.4/24 5.6.7.8/16"
routes_eth0="1.2.4.0/24 1.2.3.6 5.6.7.8 5.6.7.10 default 1.2.3.1"

Or we could adopt the BSD routing notation and do this
routes_eth0="route_foo route_bar"
route_foo="1.2.4.0/24 1.2.3.6 metric 5"
route_bar="default 1.2.3.1"

Yes, I've used the same "routes_eth0" variable, but we can change it's syntax
based on the existance of address_eth0/config_eth0.

So what are peoples feelings on this? Are you happy with the names?
address_eth0?
addr_eth0?
addresses_eth0?
ipaddress_eth0?
ipaddr_eth0?
ipaddresses_ath0?
routes_eth0?
static_routes_eth0?

Speak up, or I'll make a decision by myself which will probably be done over
the weekend.

Thanks

Roy
--
gentoo-dev@lists.gentoo.org mailing list
 
Old 04-23-2008, 06:31 PM
Chris Gianelloni
 
Default config_eth0 deprecated - new name?

On Wed, 2008-04-23 at 16:21 +0100, Roy Marples wrote:
> address_eth0?

> addresses_eth0?

I think one of these two is the most obvious to people. Since most
people will likely only have one address per interface, I'd say that
"address_eth0" sounds good.

--
Chris Gianelloni
Release Engineering Strategic Lead
Games Developer
 
Old 04-23-2008, 06:46 PM
Joe Peterson
 
Default config_eth0 deprecated - new name?

Roy Marples wrote:
> config_eth0="1.2.3.4 netmask 255.255.255.0
> 5.6.7.8 netmask 255.255.0.0"
> routes_eth0="1.2.4.0 netmask 255.255.255.0 gw 1.2.3.6
> 5.6.7.9 gw 5.6.7.10
> default gw 1.2.3.1"

If one choose to separate by lines, will tabs or spaces be allowed in
subsequent lines? Like:

config_eth0="1.2.3.4 netmask 255.255.255.0
5.6.7.8 netmask 255.255.0.0"
routes_eth0="1.2.4.0 netmask 255.255.255.0 gw 1.2.3.6
5.6.7.9 gw 5.6.7.10
default gw 1.2.3.1"

I think this *greatly* improves readability. Also, the example file
should probably indent for clarity (I know I've talked with you about
this before...).

> address_eth0="1.2.3.4/24 5.6.7.8/16"
> routes_eth0="1.2.4.0/24 1.2.3.6 5.6.7.8 5.6.7.10 default 1.2.3.1"

That's a little confusing, i.e. not being able to see easily where the
pairs are separated. What about adopting commas and keeping "gw" and
"netmask" (if not CIDR), like:

address_eth0="1.2.3.4/24, 5.6.7.8/16"
routes_eth0="1.2.4.0/24 gw 1.2.3.6, 5.6.7.8 gw 5.6.7.10, default gw 1.2.3.1"

> Or we could adopt the BSD routing notation and do this
> routes_eth0="route_foo route_bar"
> route_foo="1.2.4.0/24 1.2.3.6 metric 5"
> route_bar="default 1.2.3.1"

Hmm, that might be good as an option, as long as the other way is
available too, but I'd keep "gw", etc., perhaps.

> Yes, I've used the same "routes_eth0" variable, but we can change it's syntax
> based on the existance of address_eth0/config_eth0.
>
> So what are peoples feelings on this? Are you happy with the names?
> address_eth0?
> addr_eth0?
> addresses_eth0?
> ipaddress_eth0?
> ipaddr_eth0?
> ipaddresses_ath0?
> routes_eth0?
> static_routes_eth0?
>
> Speak up, or I'll make a decision by myself which will probably be done over
> the weekend.

I like "ipaddr_eth0" or "ip_eth0", myself.

-Joe
--
gentoo-dev@lists.gentoo.org mailing list
 
Old 04-23-2008, 07:36 PM
Roy Marples
 
Default config_eth0 deprecated - new name?

On Wednesday 23 April 2008 19:46:35 Joe Peterson wrote:
> Roy Marples wrote:
> > config_eth0="1.2.3.4 netmask 255.255.255.0
> > 5.6.7.8 netmask 255.255.0.0"
> > routes_eth0="1.2.4.0 netmask 255.255.255.0 gw 1.2.3.6
> > 5.6.7.9 gw 5.6.7.10
> > default gw 1.2.3.1"
>
> If one choose to separate by lines, will tabs or spaces be allowed in
> subsequent lines? Like:
>
> config_eth0="1.2.3.4 netmask 255.255.255.0
> 5.6.7.8 netmask 255.255.0.0"
> routes_eth0="1.2.4.0 netmask 255.255.255.0 gw 1.2.3.6
> 5.6.7.9 gw 5.6.7.10
> default gw 1.2.3.1"

The point is to remove the hard newline, which you've kept in your examples.

Thanks

Roy
--
gentoo-dev@lists.gentoo.org mailing list
 
Old 04-23-2008, 07:41 PM
Joe Peterson
 
Default config_eth0 deprecated - new name?

Roy Marples wrote:
> The point is to remove the hard newline, which you've kept in your examples.

Roy, yes, I realized that after I emailed - at first I thought it was
remaining as an option.

-Joe
--
gentoo-dev@lists.gentoo.org mailing list
 
Old 04-23-2008, 08:46 PM
"Robin H. Johnson"
 
Default config_eth0 deprecated - new name?

On Wed, Apr 23, 2008 at 04:21:27PM +0100, Roy Marples wrote:
> OK, it seems that hard lines in multipart configs seem to be an issue, so I'm
> doing this now.
>
> For a summary of why we're using hard lines you can read this thread
> http://thread.gmane.org/gmane.linux.gentoo.devel/45756/focus=45765

Do you plan to reimplement parsing of the complete ip syntax for
addresses and routes?

See my attached example from work, we use a lot of the various options
on stuff.

--
Robin Hugh Johnson
Gentoo Linux Developer & Infra Guy
E-Mail : robbat2@gentoo.org
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85
# Prefer iproute2 over ifconfig
modules=( "iproute2" )

ext="AAA.BBB.CCC" #REMOVED-FOR-PRIVACY
oob="DDD.EEE.FFF" #REMOVED-FOR-PRIVACY
int="GGG.HHH.III" #REMOVED-FOR-PRIVACY

RC_NEED_bond0="net.eth2 net.eth3"

# Primary IP must come first
config_bond0=( "${int}.51/24" "${int}.22/24" "${int}.23/24" )
slaves_bond0="eth2 eth3"
mtu_bond0="9000"
#slaves_bond0="eth3"

config_eth0=( "${oob}.145/27" )
config_eth1=(
"${ext}.51/24" # REMOVED
"${ext}.20/24" # REMOVED
"${ext}.21/24" # REMOVED
"${ext}.22/24" # REMOVED
"${ext}.23/24" # REMOVED
"${ext}.37/24" # REMOVED
"${ext}.71/24" # REMOVED
)
mtu_eth1="9000"
config_eth2=( "null" )
#config_eth2=( "${ext}.51/24" )
config_eth3=( "null" )

config_lo=(
"${ext}.30/32 broadcast - scope host"
"${ext}.31/32 broadcast - scope host"
"${ext}.32/32 broadcast - scope host"
"${ext}.33/32 broadcast - scope host"
"${ext}.34/32 broadcast - scope host"
"${ext}.35/32 broadcast - scope host"
"${ext}.36/32 broadcast - scope host"
"${ext}.37/32 broadcast - scope host"
"${ext}.38/32 broadcast - scope host"
)


# Routing
routes_eth0=(
"${oob}.128/27 dev eth0 table oob scope link"
"default via ${oob}.129 table oob"
)

routes_eth1=( # was eth1
"${ext}.0/24 dev eth1 table external scope link"
"default via ${ext}.10 dev eth1"
)

routes_bond0=(
"${int}.0/8 dev bond0 table internal scope link"
"${int}.192/27 dev bond0 mtu 1500 table internal scope link"
"default via ${int}.2 bond0 table internal"
)

rules_bond0=(
"from ${int}.0/24 table internal priority 700 dev bond0"
"to ${int}.0/24 table internal priority 750 dev bond0"
)

rules_eth0=(
"from ${oob}.128/27 table oob priority 500"
"to ${oob}.128/27 table oob priority 550"
)

rules_eth1=( # was eth1
"from ${ext}.0/24 table external priority 400"
"to ${ext}.0/24 table external priority 450"
)

# Now some fun functionality.
# This flushes the Linux route cache
# It is important on failover to do this
# otherwise traffic might try an old route for a while.
flush_route_cache() {
ebegin "Flushing route cache for ${IFACE}"
ip route flush cache dev ${IFACE}
ret=$?
eend $ret
return $ret
}

# This will take a rules array, and process it.
ip_rule_runner() {
cmd="$1"
rules_iface=rules_${IFACE}[@]
rules=( "${!rules_iface}" )
max=$((${#rules[@]} - 1))
cmd="ip rule ${cmd}"
for ln in `seq 0 $max`; do
ebegin " ${cmd} ${rules[$ln]}"
${cmd} ${rules[$ln]}
eend $?
done
}

postup() {
einfo "Adding rules"
ip_rule_runner add
flush_route_cache
}
predown() {
einfo "Removing rules"
ip_rule_runner del
flush_route_cache
}

check_link() {
ethtool "${IFACE}" | grep -q 'Link detected: yes'
}
preup() {
case $IFACE in
ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun *|tap*)
;;
bond*)
;;
eth*)
# Try to force link up first, for e1000 special case
i=0
while [ $i -lt 5 ] && ! check_link; do
[ $i -gt 0 ] && sleep 0.2
ip link set ${IFACE} up
i=$(($i+1))
done
if ! check_link; then
ewarn "No link on ${IFACE}, aborting configuration"
ip link set $IFACE down
# commented out for the moment, we need to check if we are in a bond
#return 1
fi
;;
esac
return 0
}

# Do not use the metric calculation code
# It is slow with lots of routes.
metric=0
metric_eth0=0
metric_eth1=0
metric_eth2=0
metric_eth3=0
metric_eth4=0
metric_eth5=0
metric_bond0=0
 
Old 04-23-2008, 09:04 PM
Roy Marples
 
Default config_eth0 deprecated - new name?

On Wednesday 23 April 2008 21:46:18 Robin H. Johnson wrote:
> On Wed, Apr 23, 2008 at 04:21:27PM +0100, Roy Marples wrote:
> > OK, it seems that hard lines in multipart configs seem to be an issue, so
> > I'm doing this now.
> >
> > For a summary of why we're using hard lines you can read this thread
> > http://thread.gmane.org/gmane.linux.gentoo.devel/45756/focus=45765
>
> Do you plan to reimplement parsing of the complete ip syntax for
> addresses and routes?

Not at all. If I did then we're back to using newlines.
Basically we need something like
ipaddrs=address1 address2 address3
for addresses, and
routes=dest gateway dest gateway dest gateway
or
routes=route1 route2 route3
route1=dest gateway
route2=dest gateway
route3=dest gateway
for routes

There will be no special ip or ifconfig parsing - it's a pita. especially
trying to mange 2 variants of linux ifconfig onto iproute2 (and back) and
trying to get the same style to work with BSD ifconfig. Been there, too much
pain. So it's the simple route. Want anything more powerful, well we have the
direct
ifconfig_eth0=
ip_eth0=
directives. And if they don't work then use a pre-up.

>
> See my attached example from work, we use a lot of the various options
> on stuff.

No, we won't support that. However, we will bring back ip ranges for the last
ocet like so
1.2.3.4-10/24

After seeing that I take it you'ed vote for the BSD named routing style?

Thanks

Roy
--
gentoo-dev@lists.gentoo.org mailing list
 
Old 04-23-2008, 10:01 PM
Graham Murray
 
Default config_eth0 deprecated - new name?

Roy Marples <roy@marples.name> writes:

> On Wednesday 23 April 2008 21:46:18 Robin H. Johnson wrote:

>> See my attached example from work, we use a lot of the various options
>> on stuff.
>
> No, we won't support that. However, we will bring back ip ranges for the last
> ocet like so
> 1.2.3.4-10/24

It looks to me as though you are intending to remove the capability to
set up complex network environments. Granted most people only have
simple configurations (with single IP address and just a default route),
but some of us have more complex networking environments with multiple
addresses, routes and rules on multiple interfaces. Currently Gentoo
baselayout-1 makes it relatively straightforward to set up these
configurations, and the current baselayout-2 is almost as simple[1]. I
think it would be a bad idea to remove any of the network configuration
functionality currently offered by baselayout-1.


[1] But in my opinion, the baselayout-1 /etc/net.conf syntax is better than that
in baselayout-2. Though I have not yet migrated any of the systems with
complex networking to baselayout-2.
--
gentoo-dev@lists.gentoo.org mailing list
 
Old 04-23-2008, 11:01 PM
"Robin H. Johnson"
 
Default config_eth0 deprecated - new name?

On Wed, Apr 23, 2008 at 10:04:38PM +0100, Roy Marples wrote:
> On Wednesday 23 April 2008 21:46:18 Robin H. Johnson wrote:
> > On Wed, Apr 23, 2008 at 04:21:27PM +0100, Roy Marples wrote:
> > > OK, it seems that hard lines in multipart configs seem to be an issue, so
> > > I'm doing this now.
> > >
> > > For a summary of why we're using hard lines you can read this thread
> > > http://thread.gmane.org/gmane.linux.gentoo.devel/45756/focus=45765
> >
> > Do you plan to reimplement parsing of the complete ip syntax for
> > addresses and routes?
>
> Not at all. If I did then we're back to using newlines.
> Basically we need something like
> ipaddrs=address1 address2 address3
> for addresses, and
> routes=dest gateway dest gateway dest gateway
> or
> routes=route1 route2 route3
> route1=dest gateway
> route2=dest gateway
> route3=dest gateway
> for routes
The problem in this is that you cannot set the properties for each
address or route. Please don't take us back to the stoneage of writing
the advanced networking configuration manually.

As an example of an ip address line with properties:
${ext}.30/32 broadcast - scope host

An an example of a route with properties:
${int}.192/27 dev bond0 mtu 1500 table internal scope link
(my normal mtu on the internal link is 9k, but part of the subnet runs
at 1500 for netbooting on dumb cards)

Doing these in {pre,post}{up,down} means we basically end up
reimplementing the baselayout1 array-based config manually in the
blocks. I already do that for the ip_rule_runner block.

> No, we won't support that. However, we will bring back ip ranges for the last
> ocet like so
> 1.2.3.4-10/24
I care about the address ranges far less than the additional properties.

> After seeing that I take it you'ed vote for the BSD named routing style?
I'm ambivalent about the naming scheme - I do care greatly about the
easy of configuration for the properties.

--
Robin Hugh Johnson
Gentoo Linux Developer & Infra Guy
E-Mail : robbat2@gentoo.org
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85
 
Old 04-24-2008, 06:46 AM
Roy Marples
 
Default config_eth0 deprecated - new name?

On Thursday 24 April 2008 00:01:01 Robin H. Johnson wrote:
> The problem in this is that you cannot set the properties for each
> address or route. Please don't take us back to the stoneage of writing
> the advanced networking configuration manually.
>
> As an example of an ip address line with properties:
> ${ext}.30/32 broadcast - scope host

Correct as usual. However, the existing config_foo isn't going anyway anytime
soon, so your power user config still works.
However, it will be moving to the right place
ifconfig_eth0
ip_addr_eth0

And we'll stop parsing it. You'll have to know the syntax for the module
you're using. I'm going to trying to map between them which will make the
code lighter and less error prone.

>
> An an example of a route with properties:
> ${int}.192/27 dev bond0 mtu 1500 table internal scope link
> (my normal mtu on the internal link is 9k, but part of the subnet runs
> at 1500 for netbooting on dumb cards)

You can do this with the BSD style syntax

static_routes_bond0="int0 int192 defint"
route_int0="${int}.0/8 dev bond0 table internal scope link"
route_int192="${int}.192/27 dev bond0 mtu 1500 table internal scope link"
route_defint="default via ${int}.2 bond0 table internal"

Thanks

Roy
--
gentoo-dev@lists.gentoo.org mailing list
 

Thread Tools




All times are GMT. The time now is 06:58 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org