On 05/27/14 at 02:25pm, Baoquan He wrote:
> On 05/22/14 at 03:33pm, Dave Young wrote:
> > On 05/05/14 at 03:12pm, Baoquan He wrote:
>
> > Hi, Baoquan
> >
> > The route-$netif is supposed in 1st kernel filesystem. Can we passing the
> > detail ip/netmask/gw for specific nic in kernel cmdline instead of copy
> > the route file in initramfs? In that way we can avoid this dracut fix.
> >
> > I'm not sure if it works for the complicate route setup though.
>
> I am not sure, it had better handle the route during setup net. I want
> to hear what Harald will say. He is more familiar with this.
Ok, the route table item must be a line like "192.168.100.1 via 127.0.0.1 dev
lo metric 203"
If passing them via cmdline we need quote it with some special character and
append
it to the ip= cmdline param
The other way is copy the route file to /etc/ in initramfs like you are doing.
But we did need the functions to handle the static route.
So leave to Harald about the interface.
>
>
> >
> > > + if [ -e "$f" ]; then
> > > + if grep -Eq '^[[:space:]]*ADDRESS[0-9]+=' $f ; then
> > > + handle_file $f $netif
> > > + else
> > > + handle_ip_file $f
> > > + fi
> > > + fi
> > > +
> > > # Handle STP Timeout: arping the default gateway.
> > > # (or the root server, if a) it's local or b) there's no gateway.)
> > > # Note: This assumes that if no router is present the
> > > @@ -517,6 +527,35 @@ find_iface_with_link() {
> > > return 1
> > > }
> > >
> > > +handle_file () {
> > > + . $1
> > > + routenum=0
> > > + while [ "x$(eval echo '$'ADDRESS$routenum)x" != "xx" ]; do
> > > + eval $(ipcalc -p $(eval echo '$'ADDRESS$routenum) $(eval echo
> > > '$'NETMASK$routenum))
> > > + line="$(eval echo '$'ADDRESS$routenum)/$PREFIX"
> > > + if [ "x$(eval echo '$'GATEWAY$routenum)x" != "xx" ]; then
> > > + line="$line via $(eval echo '$'GATEWAY$routenum)"
> > > + fi
> > > + line="$line dev $2"
> > > + /sbin/ip route add $line
> > > + routenum=$(($routenum+1))
> > > + done
> > > +}
> > > +
> > > +handle_ip_file() {
> > > + local f t type= file=$1 proto="-4"
> > > + f=${file##*/}
> > > + t=${f%%-*}
> > > + type=${t%%6}
> > > + if [ "$type" != "$t" ]; then
> > > + proto="-6"
> > > + fi
> > > +
> > > + while read line; do
> > > + /sbin/ip $proto $type add $line
> > > + done < $file
> > > +}
> > > +
> > > is_persistent_ethernet_name() {
> > > case "$1" in
> > > # udev persistent interface names
> > > --
> > > 1.9.0
> > >
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe initramfs" in
> > > the body of a message to [email protected]
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > --
> > To unsubscribe from this list: send the line "unsubscribe initramfs" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe initramfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html