Only the master of the source device do path calculations
Change-Id: I29f6d49f039d61014f0ff8ddce73db2ad18eb6e4
(cherry picked from commit a7da388b2f8d1601e71d915618509b03478a4a9b)
- Add new XConnectConfig with unit test
- Gather XConnect features into XConnectHandler
- Introduce ObjectiveError.Type.GROUPREMOVALFAILED
- Rename
- NetworkConfigEventHandler -> AppConfigHandler
- XConnectNextObjectiveStoreKey -> XConnectStoreKey
- Test json file
- Refactor
Change-Id: I8ca3176ed976c71ce9e28b7f3722ce80d49c816f
Bug fix when optimized SR re-routing fails, do full re-route
Bug fix filtering objectives should be called for new device even if there is an existing grouphandler
Bug fix NPE in ofdpa driver due to null check on the wrong variable
New cli command for debugging flow-objectives for pending next-objectives
Flow objective cli commands now start with "obj-"
Change-Id: I819f82d1d67769cb9fbbde60f099d29b8e7f7c9e
Bug fix where filtering objectives are not installed due to available ports becoming enabled later.
Bug fix where flow objective store had no listener for notifications from drivers across multiple instances of the controller.
NPE fix in ofdpa driver for non-existing groups.
Preventing ofdpa driver from sending spurious pass notification to app.
Incrementing retry filter timer from 1 to 5 secs in default routing handler.
Made several debug messages clearer.
Change-Id: I828671ee4c8bcfe03c946d051e1d1aac9d8f68dd
hostLearning config
- true: enable host learning
- false or not provided: disable host learning
suppressHost config
- all connect points listed here will be ignored
- no effect if hostLearning is false
- accept all hosts if this config is not provided
Change-Id: Id4a60bd47cac1f226ab8ba5391931ad2fb798529
We no longer need to configure /32 IP in interfaces.
SR will push a per-host route when discovering a host
with IP address(es) that does not belong to configured subnet.
Also includes:
- HostHandler refactoring
Change-Id: Ic1ad42d1ccdfee32be85f49e6fc94d9026000ffc
Automatically failover to backup spine if
- ingress - transit link down
- transit - egress link down
- transit device down
Can recover from fatal error with human involved
- ingress switch down
- egress switch down
- all links to spine down
Scan through McastRouteStore when
- SR activate
- link up
Also include following features
- Use flow objective context in McastHandler
- Update Mcast VLAN config sample
Change-Id: I75007d9efd7646e7c4e57fa6d3fc6943543153cf
bug fix for host IP and MAC flows not being generated sometimes in multi-controller scenarios
bug fix for filtering objectives not being sent sometimes when ports become available later
npe fixes in ofdpa driver for cases where selectors or treatments may not be available
new cli command to manually trigger routing and rule population
portstats option on cli to display only those ports with non-zero stats
group cli command tab completion displays choices in lower case (similar to flows)
segment routing cli commands now start with sr-
Change-Id: Idcd641882d180acbd304e5560ed3483b5a943f96
- Change name: McastEventHandler -> McastHandler
- Separate HostHandler from SRManager
- Move storekeys to a dedicated package
- Replace SRObjevtiveContext and BridgeTableObjectiveContext with DefaultObjectiveContext
Change-Id: Iab25529487004759105e5ba60c1d2a3852ac45e6
In this submission:
* Setup/teardown multicast route according to SinkAdded/SinkRemoved event
- ingressVlan and egressVlan is configurable through network config
* Change behavior of OFDPA VLAN assignment
- Always use the VLAN in metadata if present
* Bugfix of writing immutable object
NOT in this submission (coming soon):
* Error handling (e.g. link/device failure recovery)
Change-Id: I9be11af04eb2d6456b865c7e59e96cc02370f846
Bugfix in group store - group delete state updated correctly.
SR app no longer deletes buckets in existing groups - workaround for OFDPA bug.
Instead it invalidates the entire group, thereby forcing new group creation.
Also incorporating Charles' changes to remove state from group and flow stores,
and the SR app when device goes offline.
Change-Id: I162d3fb6bf709a8f02b01b8d57e131c2bac9b46b
- Fix unit test errors of web/api
- Fix default page redirection problem
- Fix compilation errors of web/gui
- Fix configuration of aaa, acl, cordfabric, cord-gui, dhcp, mfwd,
olt, openstack, segmentrouting, vtn, virtualbng, xos-integration
- Fix unit test errors of cpman, vtn, acl, faultmanagement
- Fix compilation errors of openstack, virtualbng, xos-integration,
REST SB controller
- Rearrange features.xml to resolve bundle dependencies
- Remove all of stale Jersey 1.x libraries
- Rearrange web.xml to point new Jersey 2.x servlet
Change-Id: Ic17f461ede0aa36fa8d470546d8069152dc1d134
- Separate host and subnet suppression
- Use port instead of interface to specify which SR should ignore
Change-Id: Ie6491950cddf0860924565f081504b4f4d788179
- Change L3 unicast group id/key generation to include src MAC
- Note: Only flows are removed when a peer is gone
since the group may still be referenced by routes announced by peer.
It does no harm even if the group is not referenced.
- Note: We assume that peer does not move or update IP
Also fix several SR/VR integration issues, including
- Do not push broadcast group for /32
Change-Id: Ifb03601f5341f8b7717ea1fbccbc569b07f66476
Also change Interface to return a list of addresses rather than a set
to allow applications to rely on the order of configuration
Change-Id: Ie7f62fee507639325ee0a77b8db4088dae34597e
- Added excludePorts config to SegmentRouting
SR does not push VLAN filtering rule to excluded ports
SR ignores hosts learned from excluded ports
- Use separate default route config
Don't need to config 0/0 on the interface anymore
Change-Id: Iea75d60c2d5f5368e79652b1bf192a6ced49030d
- Support multiple subnets per port. getIpPort() will only return the first non-/32 and non-/0 subnet
/32 is used as vSG subnet
/0 is used as default gateway
- Support multiple L3 unicast group on a single port
Change the way to generate the group ID and group key
- Special case for 0.0.0.0 host. Push a /0 to IP table instead of /32
- Implement vRouterConfig
Put VR MAC to TMAC table of all leaves when config added
When processEthDst see PortNumber.ANY in key, match ETH_DST only
- For OFDPA, wipe existing instruction before sending to controller
So packet that misses L3 unicast table won't be sent to controller twice
- For SpringOpenTTP, pop VLAN before sending to controller
- Move several constant definitions to SegmentRoutingService
- Add minimum priority for IP rules such that /0 won't collide with zero priority default rules
- Update the config sample
Use VLAN=-1 for hosts
Add example for default route
Change-Id: Id751697ce36a7e5c13b3859350ff21b585c38525
Related to this topic:
- Disable the meter collector since right now it is not supported
- Implement extension VLAN ID selector/treatment for OFDPA
Since it requires two special flow entries to match untagged packets
0x1ffe/no mask (filtering rule, need to go first)
0x0000/0x1fff setvid 0x0ffe (assignment rule, need to go second)
- Not able to point /32 IP address to ECMP group. Use /31 instead.
In addition:
- Implement serializer for ExtensionCriterion
Change-Id: I621b3ad14014d7e6945c014cdae4f7cd2939288e
Change related to this topic:
- Support VLAN cross-connect traffic
Utilize ports subjectClass to achieve. For non-xConnect port, set interface VLAN to -1
- Remove VLAN checking since we have multiple VLANs per port
- Hash the L2 interface group key generation to include VLAN as well
- Update the network-cfg.json sample
Other refactoring changes:
- Read next objective stores from srManager directly
- Use constant for flow priority
- CORD-267 Javadoc fix
Change-Id: I4ca8c2d9c8b3633a4a0101c5070d19343f7e5b90
Bugfix:
- Add MPLS BOS matching
- Fix NPE caused by race between filter objective and broadcast next objective
Enhancement:
- Move group handler out from OFDPA pipeline
- Move ARP request from rule populator to packet request
Change-Id: I0ba40e10f7cb7f97277df86725fbd2546a62e890
Also includes:
All forwarding in app is now via nextObjectives (not treatments) - Spring Open driver converts
non-ECMP forwarding to flow-actions, while OF-DPA driver continues to use groups.
Convert 'setMeta' methods to 'withMeta' in Flow Objectives API.
Bug fix in Flow Objective Manager - set of PendingNext is now threadsafe.
Bug fix in ArpHandler - now recognizes routerIp in addition to gatewayIps
Removed a bunch of testcode
Added group count in CLI
Change-Id: Id3b879c5dda78151ca0ec359179f1604066d39fc
- Add Javadoc and fix function name convention
- Add setAdjancencySids method
- Change return value of getAdjacencySids from List to ImmutableSet
- Validate config value
- Add unit test for SegmentRoutingConfig
Change-Id: Ic43ac31a49da8a9d62131d7803930280cf9994d2
* Implement new application org.onosproject.netcfghost
* Implement BasicHostConfig to include IP and location information
- Update network-cfg.json to add host config example
- Add network-cfg-2x2-leaf-spine.json for 2x2 leaf-spine network in SegmentRouting
* Update Segment Rounting
- Punt ARP packets
(which is done by HostLocationProvider previously)
- Check existing hosts when device connected or configured
Change-Id: I03986ddc8203d740b5bf26903e3dbf866d4d4600
Also includes:
Changes to Next Objective that adds metadata field for applications to optionally send auxillary info to drivers
Changes to Next Objective that allows more explicit modification of the next objective
Changes to Forwarding Objective and PendingNext to include hashCode() and equals() method
MplsBosInstruction included in kryo serializer
GroupKey's byte[] represented as a hex string
Bug fix in mpls flow installation to report failure in install
Bug fix in linkUp in SR app to disallow non-masters to modify groups
Bug fix in ordering of actions in group
Change-Id: I3e7003f55724c2de79589e43e11d05ff4815a81d
DONE
- Update SpringOpenTTP to support bridging table emulation
- Populate low priority subnet broadcast entry for bridging table
- Move IP entry population to host event handler as well
- Update ArpHandler to handle intra-rack ARP forwarding/flooding
- Move TTL_OUT action from IP table to corresponding group
Since hardware does not support TTL_OUT in the IP table
- Populate entries to bridging table (MAC learning)
- Emulate src mac table
Not in this submission
- Emulate src-mac table behavior
- Pop vlan in the group instead of the flow
Change-Id: Ib69357c1889ccddaa4daa272d9f5843790ee1a3c