Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIFI-13871 Target main branch #64

Closed
wants to merge 134 commits into from
Closed

WIFI-13871 Target main branch #64

wants to merge 134 commits into from

Conversation

carsten989
Copy link
Collaborator

  • WIFI-13871 allow automated builds on main branch

phwhite and others added 30 commits March 17, 2024 20:33
Signed-off-by: Paul White <[email protected]>
- Add rebalancing implementation (basic);
- Add prometheus metrics (draft);

Signed-off-by: Oleksandr Mazur <[email protected]>
Change-Id: Iff273da2fcbe938ada51b97c87dcc3e534d1f95d
- Update readme;
- Add run script that helps running cgw;
  (utilizes enviroment variables for starting app);
- Add makefile that will be used for building app
  (build, deploy, run, run tests etc)

Signed-off-by: Oleksandr Mazur <[email protected]>
Change-Id: I5b72e35a121afa95f3102efad8f1748995910a76
- Rework JSON parser of uCentral messages to report
  valid mac to conn_server (in hex + uppercase),
  either way, connmap lookup can fail and cgw is unable
  to forward (sink down) msg from NB API to device;
- Comment-out stale connection closing (for now);

Signed-off-by: Oleksandr Mazur <[email protected]>
…_fix

Fix invalid device MAC reporting upon connect
- Use special build-env docker image that uses local project
  directory (volume mount) to speedup build.
- Implement cgw-img (docker image) generation.
- Track cgw-img tag based on commit.

Signed-off-by: Oleksandr Mazur <[email protected]>
Implement dockerized building and running of CGW
This reverts commit 8493d0e.

Commit was merged by mistake by @Cahb
Revert "Added RAM cache for device - Groupd ID mapping"
Added RAM cache for device - Groupd ID mapping
Get device capabilities from first connectnion
…stead of getting it from cache for each field
- Tweak script to respect cgw_id
- Remove hardcoded broker ip for NB API producer

Signed-off-by: Oleksandr Mazur <[email protected]>
Carsten Schafer and others added 29 commits June 27, 2024 16:35
Signed-off-by: Carsten Schafer <[email protected]>
Double-read-lock acquisition forced a deadlock in some
stressfull specific scenarios, where the same lock
get's aquired for <write> later on.

Isolate required <read> locks in their own contextes,
as well as make sure we alter msg queue only <after>
ACK is received from conn_server;

Also remove some nasty logs (cache+topo map), as well
as misleading <Started wss server> print

Signed-off-by: Oleksandr Mazur <[email protected]>
CGW: Fix deadlock occuring in msg queue
Add a new GID Changed event that Server can sink to underlying
Conn Processor upon need (infra list created - new GID assign,
infra list deleted - <unassigned> GID assigne (0));
This is needed to make sure ConnProcessor doesn't lock
device cache whenever not necessary which can fail/block
acceptance of new ingress connections.

The only drawback is that at least 1 (could be more) potential
messages that come from ConnectionProcessor (underlying infra/device)
can send messages to kafka with <outdated> KEY - group id - for some
time (depends on the load).
In a perfect world it's possible that a single message will be sent
with outdated GID, given that ConnProcessor has a highest priority
of fetching MBOX messsages prior to even touching socket.

Signed-off-by: Oleksandr Mazur <[email protected]>
NOTE: CI changes will be made in other PRs.
This one only covers the buildsystem / application part;

Signed-off-by: Oleksandr Mazur <[email protected]>
Originally <as> is lowercased in present Dockerfile, which might
omit warnings upon build.
Fix this by uppercasing the <AS> instructions.

Signed-off-by: Oleksandr Mazur <[email protected]>
…_start

Build: Print version (hash) tag whenever app starts
Signed-off-by: Carsten Schafer <[email protected]>
State messages have only one place for serial - state: params:serial,
while CGW expected it to be in params:state:serial as well.
Fix it by removing the last params:state:serial expectation

Signed-off-by: Oleksandr Mazur <[email protected]>
…ormatting

Fix/minor fixes and formatting
This is a debug-oriented (in cloud deployment) change to debug
real-life deployment.

Signed-off-by: Oleksandr Mazur <[email protected]>
…arily_revert_root_user

CGW: Dockerfile: revert (temporarily) root user
To disable the feature, the CGW_FEATURE_TOPOMAP_DISABLE should
be exported (value doesn't matter);
To enabled it back, the ENV var CGW_FEATURE_TOPOMAP_DISABLE
should be unset:
$ unset CGW_FEATURE_TOPOMAP_DISABLE

Signed-off-by: Oleksandr Mazur <[email protected]>
…bug_build

Build: enable temporarily debug-only build by default
…topomap_processign

CGW: Allow disabling topomap handling through env var
Change current behavior of CGW to <disable> the
TopoMap feature by default, as it's current
implementation is very unstable with high
number of devices sending their state info data.

Signed-off-by: Oleksandr Mazur <[email protected]>
Signed-off-by: Carsten Schafer <[email protected]>
@carsten989 carsten989 closed this Jul 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants