1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00
Commit Graph

38 Commits

Author SHA1 Message Date
Roopa Prabhu
2c0ad8b338 Doc updates + cleanup
Ticket: CM-2297
Reviewed By:
Testing Done: compile tested

more updates coming ...
2014-07-17 11:44:36 -07:00
Roopa Prabhu
09a304ca24 Fix return value when upperifaces are brought up
Ticket: CM-3208
Reviewed By:
Testing Done: Tested with testcase listed in the bug

This patch does the following:
- moves the interface error exit check to before upperifaces are brought
  up
- changes errors to warns on upperiface error (this is because
  upperiface 'up' is done as best effort to reconfigure the interface in
  question as slave device to the upper device. But if the upper device
  is not in a right state config steps can fail. And we should just
warn).
- Implicitly bringing up the upperifaces helps in most of the cases. especially
  when a bond is brought down and up. The upperiface handling code adds
  the bond back into bridges it was part of. or creates the vlan devices
  on the bond that got deleted. But there can be cases where upperifaces are
  not in the right state and this results in warnings.

  To disable the implicit upperiface handling, this patch also supports
  'skip_upperifaces=1' in /etc/network/ifupdown2/ifupdown2.conf

in future, i am thinking of an option --skip-upperifaces to ifup
2014-07-16 14:07:58 -07:00
Roopa Prabhu
ca10586116 Bump kernel ethtool get/set wait to 20 + ifupdown2 convert ethtool
errors to warns

Ticket: CM-3159
Reviewed By: briefly ran this by jtoppins and andy (sfeldma is on
vacation this week).
Testing Done: tested ifupdown2 with ethtool config during boot (sam will
also be adding the testcase mentioned in the bug to ifupdown2 smoke)

The kernel timeout increase helps right now.
we should revisit this again in 2.3 to close all corner cases.

ifupdown2 will now warn on ethtool errors and will also return
non-zero exit status
2014-07-16 14:07:31 -07:00
Roopa Prabhu
699c1cffee Fix error flag for cases where errors are ignored (part of commit
3afb698d60a7ec0bb3029efccc82c0bd1aa49197)

Ticket: CM-2960
Reviewed By:
Testing Done: ifupdown2 sanity + precommit
2014-07-16 14:07:13 -07:00
Roopa Prabhu
5973036bba exit with non-zero return code if any of the ifaces have errors
Ticket: CM-2960
Reviewed By:
Testing Done: ifupdown2 sanity + error cases + precommit

uses a class variable to store return value
2014-07-16 14:03:45 -07:00
Roopa Prabhu
5ee3e1a854 Fix handling of interfaces with --allow CLASS
Ticket: CM-3105
Reviewed By:
Testing Done: precommit and some interface class tests

- the patch mostly involves code reorg
2014-07-16 12:03:03 -07:00
Roopa Prabhu
ba7b1d6084 Fix scheduler for --allow <classes> option
Ticket:
Reviewed By: nobody
Testing Done: Tested --allow <classes>
2014-07-16 12:02:55 -07:00
Roopa Prabhu
33e106daff Fix upperiface check when ifdown is run with -a
Ticket: CM-3007
Reviewed By: shm + patch was pasted in the bug for review
Testing Done: ran precommit + maliks test + malik ran his test on his
box

When -a is specified ifupdown2 works on all interfaces and since the the
upperiface check is a bit expensive i had a "skip" on that.
And so far all the user commands i have seen only work on the $IFACE and
not its dependents. So, never hit this case.
2014-07-16 12:02:38 -07:00
Roopa Prabhu
44a6ca06b7 Fix query-check object for interfaces with multiple iface sections
Ticket: CM-1438
Reviewed By:
Testing Done: ifupdown2 sanity
2014-05-31 21:52:16 -07:00
roopa
923290bd42 Fix bug during handling multiple iface sections for same interface
Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifupdown2 sanity + multiple iface sections for an
interface

- This patch fixes a few shortcomings in the multiple iface sections
for same interface (partly because i was only covering
backward compatibility cases earlier)
- Since this is a very common configuration pattern, this patch cleans
  it up
- also restructures some code
- main change is:
    before:
        for iface in ifaces:
            for op in ops:
                run op on iface

    after:
        for op in ops:
            for iface in ifaces:
                run op on iface
2014-05-26 09:03:29 -07:00
roopa
86fc62e20c make a few things configurable (check output err/success string +
warnings on ifupdown)

Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifupdown2 sanity

Some of the above mentioned configurable items can be specified in
ifupdown2.conf
2014-05-09 09:10:49 -07:00
roopa
f90dd03886 Fix stray call to dict which was converting my ordered dict to an unordered dict
Ticket: CM-2731
Reviewed By:
Testing Done:

This was resulting in eth0 missing its first spot during interface
bringup
2014-05-07 22:48:29 -07:00
roopa
65c485175b include only interfaces with no config in the upperiface check
Ticket: CM-1438
Reviewed By:
Testing Done: sanity and ifdown on bridges with vlans that dont have
user config
2014-05-02 08:10:59 -07:00
roopa
99b212b016 Bring back upperiface check during down (One of my recent checkins had
removed it)

Ticket: CM-2671
Reviewed By:
Testing Done: Tested test case in CM-2671 and ifupdown2 sanity
2014-04-29 21:45:57 -07:00
roopa
525f0a30ef cleanup + fix some reload caching issues
Ticket: CM-2508
Reviewed By:
Testing Done: ifreload and ifupdown sanity testing
2014-04-04 15:00:59 -07:00
roopa
cb7cc59218 Cleanup saved state for down objects on ifdown
Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifup/ifdown sanity

This was a pending cleanup activity.
2014-03-30 22:38:00 -07:00
roopa
9dce35612d warn on template rendering errors and continue + --syntax-check option to ifup +
minor parser cleanups

Ticket: CM-2488
Reviewed By:
Testing Done: Tested ifupdown sanity and also the interfaces file in CM-2488
2014-03-28 06:03:14 -07:00
roopa
ca3f4fc75a Remove upper device check warnings + implicitly follow upperifaces when
a logical interface comes up

Ticket: CM-2493
Reviewed By:
Testing Done: Tested ifup, ifdown in bond bridge setup

Also, implicitly pick up the upperifaces (even when user has not
specified --with-depends) for logical interfaces.
This is because when a logical interface goes down/deleted, kernel
impilicity deletes its upperifaces. so its better to implicitly bring
up upperifaces.

example

bridge name    bridge id        STP enabled    interfaces
br0        8000.7072cf8c2fca    yes        bond1
                            bond2
br2000        8000.7072cf8c2fca    yes        bond1.2000
                            bond2.2000
br2001        8000.7072cf8c2fca    yes        bond1.2001
                            bond2.2001

bridge name    bridge id        STP enabled    interfaces
br0        8000.000000000000    yes
br2000        8000.000000000000    yes
br2001        8000.000000000000    yes

bridge name    bridge id        STP enabled    interfaces
br0        8000.7072cf8c2fca    yes        bond1
                            bond2
br2000        8000.7072cf8c2fca    yes        bond1.2000
                            bond2.2000
br2001        8000.7072cf8c2fca    yes        bond1.2001
                            bond2.2001
2014-03-27 14:00:00 -07:00
roopa
53b0022499 cleanup + fixes
Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifupdown sanity
2014-03-25 15:21:19 -07:00
roopa
fa3da4be43 Only warn on ifdown of an interface who has upperifaces still around +
cleanup

Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifup/ifdown sanity
2014-03-24 06:28:08 -07:00
roopa
62ddec8b52 cleanup (mostly cosmetic)
Ticket: CM-1438
Reviewed By:
Testing Done: sanity test
2014-03-22 22:16:53 -07:00
roopa
c798b0f4aa execute 'up' on upper devices if ifup is called with --with-depends
Ticket: CM-1438
Reviewed By: review pending
Testing Done: Tested ifup/ifdown

Before this patch, `ifup --with-depends <iface>` only brought up
lowerdevices. Because those were enough for iface to function.

And if ifaces above it (upperdevices) needed fixing, user could just
execute `ifup --with-depends <ifaceupper>`.

But in a recent, bond under a bridge bug in 2.0, got me thinking that
its probably better to up the upperdevices which might be impacted as
well. and this patch does just that.

The patch includes changes to make ifupdown generate dependency
information for all interfaces even if the user requested to operate
on a single interface. This is to get a full view of the interfaces file.
This might add some overhead. Should not change anything during boot.
Still looking at ways to optimize.
2014-03-18 16:38:00 -07:00
roopa
dab8d81ec7 Remove dead code
Ticket: CM-1438
Reviewed By: trivial
Testing Done: Tested ifup/ifdown
2014-03-17 06:38:55 -07:00
roopa
21c7daa773 Fix upperiface check to not barf when --force is used
Ticket: CM-2366
Reviewed By: trivial
Testing Done: Tested ifup/ifdown with bonds and bridges

Also refactored some code.
2014-03-06 14:37:28 -08:00
roopa
a690dfae1b ip batch support for mstp bridges + add support for multiple globs in a
single port expression + cleanup

Ticket: CM-1438
Reviewed By:
Testing Done:

This has left some dead code in. cleanup comming in subsequent patches.
ip batch support is not complete. It currently works only for mstpctl
bridges. more coming ..
2014-02-27 22:23:03 -08:00
roopa
20dd6242f6 ifudown --no-scripts support
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-26 08:09:44 -08:00
roopa
31a5f4c364 cleanup state manager + remove some dead code
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-24 11:07:59 -08:00
roopa
6bd7fc7466 Disable exec of legacy /etc/network/<scripts> for now because of the
overhead

Ticket: CM-1438
Reviewed By:
Testing Done:

These are executed with shell=True and python subprocess performance
with shell=True sucks. This seems to have improved in python3. Will try
that out next. And also plan to make this controllable via an option.

This reduces time to ifup by half.
2014-02-20 09:07:55 -08:00
roopa
69f582783b Fixes for some corner cases + cleanup
Ticket: CM-1438
Reviewed By:
Testing Done:

Also includes fix for CM-2307 and some other fixes for primary/secondary
address handling.
2014-02-18 22:25:48 -08:00
roopa
be0b20f288 Support for manual method + rearrange some code
Ticket: CM-1438
Reviewed By:
Testing Done:

- Moved link config to base ifupdown. I had been debating about this,
  this is need to support manual and also the --no-scripts option.
- helps executing only link up/down operations if needed on an interface
- While at it, i also moved the scheduler methods to be classmethods
  instead of instance methods (which again was a pending cleanup task)
2014-02-17 19:01:37 -08:00
roopa
f321512771 Fix l3 lag test failure
Ticket: CM-1438
Reviewed By:
Testing Done: l3 lag test with help from purna

- THe down sequence in the new ifupdown was causing switchd some grief
  (wilson is looking at it). readded the topological sort which i had
removed in favor of only walking the tree. With the fix,i dont see the
switchd problem anymore.
- And another down bug was causing the bond to go away prematurely (only
  with the all depends option). Added a upperdevice list to track upperdev references
2014-02-12 22:29:41 -08:00
roopa
6ef5bfa291 Some compat fixes + some stp precommit test fixes
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-10 14:39:18 -08:00
roopa
d08d5f5478 More fixes and cleanup
Ticket: CM-1438
Reviewed By:
Testing Done:
2014-02-08 09:05:32 -08:00
roopa
37c0543d34 More fixes and changes
Ticket: CM-1438
Reviewed By:
Testing Done: unit tested with all kinds of interfaces

some high level changes
- moved ipv4/ipv6 address handling in a single module. dhcp
into a separate module.
- new link 'up' module
- igmp fixes
- many other fixes
2014-01-30 22:36:41 -08:00
roopa
cca03c30c5 some ifquery fixes + make the default to not follow dependents (
added a --with-depends option)

Ticket: CM-1438
Reviewed By:
Testing Done:

still debating on the default behaviour for following dependents.
for now not following dependents might be better.
When all interfaces are selected, it always follows dependents
2014-01-30 19:53:49 -08:00
roopa
739f665baa A whole lot of fixes and some new code (needs some cleanup which will be
part of subsequent checkins)

Ticket: CM-1438
Reviewed By:
Testing Done: Tested ifup, ifdown and ifquery

Conflicts:
	packages/ifupdown2-addons/addons/ifenslave.py
2014-01-30 19:53:25 -08:00
roopa
3e8ee54f30 more fixes + cleanup + support for --exclude argument
Ticket: CM-1438
Reviewed By:
Testing Done:
2013-11-13 16:07:15 -08:00
roopa
a6f80f0e0b python-ifupdown initial checkin
Ticket: CM-1438
Reviewed By: TBD
Testing Done:

- Will checkin build files after some more testing and performance
  numbers. It will go into the testing repo for 2.0

- All TODO items are part of the checked in TODO file
2013-11-04 06:06:11 -08:00