Two main changes for the bug-fix:
- avoid doing a full-reroute in the event of link failure as this will leave behind stale state in stores
if event has been preceded by mastership change leading to the nuking of the ecmpSpg for one of the
link's devices; instead do a rehash
- when full-reroute is attempted, do it only once, with a complete nuke of the next-obj store
Improvement in group handling allows for a max number of retries for a group that failed to be added.
Earlier behavior was to try only once, and if it fails, it gets removed from the group-store. Now it
is removed after a couple of retries - so total 3 attempts to program the group.
Change-Id: I54ca8203cef779463522b01353540d12f8be3c91
Set this option to true to respond to arp requests
for unknown hosts [Default Value = True].
Change-Id: Ia2f10b2fae22b65cd2ec12a04accd9ad0ec15109
(cherry picked from commit 7bf9e441bdc4c7ac420f2a59e4d176005a40d020)
- add support for apps depending on other apps
- build files for route-service and segment routing
Change-Id: I4850aacfe050f802072e2d59a6a21bcefd784e67
- refactored l2 handler to *only* program initiation and termination
points and nothing else.
- all pseudowires are set to be carried wiht PSEUDOWIRE_VLAN fetched
from srManager.
Change-Id: I811370f21156a9ca4d42becb1f9401dbeb4fdc33
- Co-ordination when creating - removing pseudowires from
different instances with a use of a DistributedLock.
- Fixed REST API To return json with specific error for
the single pw instantiation.
- Fixed REST API to return specific error also for pseudowires
that could not be decoded.
- Minor bug fix to return appropriate error when instantiating
a pw from the command line that could not be decoded.
- Fixed bug when creating spine-leaf-leaf pseudowire where we observed flows in pending state.
- Improved logging.
Change-Id: I60dd0ebf8af63ca74d18cfe4801d01846641fb7b
- Implement probe retry
- Switch to typical core/provider design pattern for HostProbingService
and as a result decoupling the dependency between SR and HostLocationProvider
Change-Id: I33a15af580677ea376b421ac3e26f9821dcca844
The issue was in the serialization. Since we enhanced DestinationSet
to use an Enumeration class, this class should also be registered
with KryoNamespace. Without registering the Enum class
DestinationSetType, the next hops were remaining local to the instance
which has inserted them into the Map and they did not propagate to
other instances.
Change-Id: I4e21481a5fe232892319232b8675cb083593f8f1
- Removed the booleans in destination test set and refactored
it to use a proper enumeration.
- Create a special next objective for pseudowire transport that
does not pop the tag.
- Install special filtering rules for receiving trafffic for
pseudowires in all devices.
Change-Id: I665a00d9a766e026d35799fe2f12d56419cb55cd
- fix issues detected
- YANG custom registrator should be subject to checkstyle
- fix Java 8 syntax related violations
Change-Id: I0fc52c6612a40d851fd9bc3bf019621776b1f92a
This patch also redirects IPv6 NDP, which is also a multicast packet, to table 40. The IPv6 bridging and BGP peering break as a result. I am reverting this for now and we will need to find another way around.
This reverts commit b955fec073cd90b3b1ac4cbab51e82d110ca43d1.
Change-Id: Ie2bca5c0c0edf170bcdb8f50821271585b275cb1
When an interfaces is defined with tagged VLAN(s) and no IP addresses, do not install TMAC entries for that VLAN(s).
Change-Id: I5beeb38c0b21cdd69a0da90943f768c3aeddb720
- Moving time-consuming packet processing to a separate thread
- Re-use the group information when dealing groupMissing instead of query again
Change-Id: I01f1b43260f22dcb969a105f16d04d79c722146e
Majorly for the 2nd step of [1A/x, 1B/x] -> [1A/x, 1B/y] -> [1A/y, 1B/y]
But will also cover [1A/x] -> [1A/y] -> [1A/y, 1B/y]
When receiving probe for 1A/y in [1A/x, 1B/y] state, simply replace 1A/x with 1A/y instead of creating a transient 3rd locaiton
Change-Id: I058a265bbe5019d4305aa09d70e095fec0d7e429
In addition:
- handle port updates that may be lost if mastership changes at same time
- fix javadoc in DeviceService
Change-Id: I032909e8ab9564cf9c978b1d66abd3ab32c814d7
- Implemented logic to handle double-tagged host in segmentrouting application.
- Added 'DummyVlanId' to segmentrouting application to keep track of dummy vlan for L3L2Unfiltered group chain and egress tables.
- Implemented L2Unfiltered group and Egress pipeline programming support in OFDPA pipeline.
- Added EGRESS flag to the forwardingObjective to program Egress tables.
- Fixed bugs when handling double-tagged ARP request, to get correct vlan id and reply with double-tagged packet.
- Fixed bugs in BasicHostConfig, to set the value of 'outerTpid' to 0x8100 if it is not specified.
- Fixed build(ARP/ICMP/ICMP6)reply to build double-tagged reply if corresponding request is double-tagged.
Change-Id: I1fdc30b55827c3f73fad9e854bcaa5fb23f7bcd0
- Leaves should avoid going through other leaves to reach destination
- dsNextObjective store should only be purged by new master before a full reroute
- move full reroute for master change to a different threadpool from retry filters
Change-Id: I33be83bfb90d5848cfe94ed0fcdc17f2cca6d73f
- Fix typo
- Remove unnecessary warnings
- Ignore dhcp config register/unregister event
- Ignore interface IP update when there is no host discovered on that interface
Change-Id: I530fe36eb063ac8b3397c86e888c0a6c2ab8984b
- Avoid querying shouldProgram every time
- Override flows directly instead of remove and add
- Remove unnecessary event handling delay since we have in-order execution now
- Avoid re-initiation of shouldProgram
- Make sure executors are shut down during SR deactivation
Change-Id: I28e383ed2dcb66d503da25934456008e83683b78
- Solve an issue where next hops are available on both leaf switch but one still pointing to its pair through the spines
- Improve unit tests
Change-Id: I94fe79bd9289efe544d82b858928d65201a0b0b2
- When dealing with possible fake links which tend to be unidirectional, do not
update internal stores until bidirectionality is verified
- When figuring out ECMPspg, do not use LinkService to figure out bidi egress
links. Instead use linkHandlers seen-links
- Prevent NPE in updatedEcmpSpg
- Improve logic for bringing up downed dual-home host ports: any active uplink,
not just the first one should re-enable ports
Change-Id: I4412578e72a6d441cacfa2e023870ceb7c7eab04
Main change:
- Implement new logic for shouldHandleRouting, along with corresponding unit tests. Also rename it to shouldProgram
Side changes:
- Refactor revokeSubnet such that it is only invoked on the instance that should handle routing change
- Move the following methods to RoutingRulePopulator and follow the same design pattern as populate/revoke subnet/route
- populateBridging, revokeBridging, updateBridging
- updateFwdObj
- Make sure the following methods in RoutingRulePopulator are always invoked by DefaultRoutingHandler with shouldProgram check
- populateRoute, revokeRoute
- populateSubnet, revokeSubnet
- populateBridging, revokeBridging, updateBridging
- updateFwdObj
Change-Id: I903129271ede91c45ebf0d973e06faeae46c157a