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

[PikeZ] ERR syslog message SAI_STATUS_INVALID_PARAMETER #1131

Closed
jimmyzhai opened this issue Sep 20, 2022 · 3 comments · Fixed by #1129
Closed

[PikeZ] ERR syslog message SAI_STATUS_INVALID_PARAMETER #1131

jimmyzhai opened this issue Sep 20, 2022 · 3 comments · Fixed by #1129

Comments

@jimmyzhai
Copy link
Contributor

While testing Arista-720DT-48S device, it keeps printing the below messages although switch oid 0x21000000000000 has existed. These messages are abnormal.

admin@720dt:~$ redis-cli -n 1 keys '*SWITCH*'
1) "ASIC_STATE:SAI_OBJECT_TYPE_SWITCH:oid:0x21000000000000"

Sep 15 09:22:48.369108 720dt WARNING swss#orchagent: :- meta_fdb_event_snoop_oid: fdb_entry oid (snoop): SAI_OBJECT_TYPE_VLAN: oid:0x26000000000762
Sep 15 09:22:48.369157 720dt WARNING swss#orchagent: :- meta_fdb_event_snoop_oid: fdb_entry oid (snoop): SAI_OBJECT_TYPE_BRIDGE_PORT: oid:0x3a000000000764
Sep 15 09:22:48.369233 720dt ERR swss#orchagent: :- meta_generic_validation_create: switch id 0x21000000000000 doesn't exist yet
Sep 15 09:22:48.369286 720dt ERR swss#orchagent: :- meta_sai_on_fdb_event_single: failed to insert SAI_OBJECT_TYPE_FDB_ENTRY:{"bvid":"oid:0x26000000000762","mac":"2C:DD:E9:FC:DD:58","switch_id":"oid:0x21000000000000"} received in notification: SAI_STATUS_INVALID_PARAMETER
Sep 16 09:22:48.369333 720dt WARNING swss#orchagent: :- syncProcessNotification: switch oid:0x21000000000000 not present in container, returning empty switch notifications
@kcudnik
Copy link
Collaborator

kcudnik commented Sep 20, 2022

do you get this every time ? this is very wired, what configuration do yoy have there, is this with 2 syncds ? is there only one orchagent or 2? also 2 syncds should run in 2 differnt global contexts

@jimmyzhai
Copy link
Contributor Author

I get this every time with basic bgp config. PikeZ device has external PHY (Gearbox), then it runs syncd (global context 0) and gbsyncd (global context 1). There is only one orchagent.

Each context creates a redisSai object of RedisRemoteSaiInterface. The redisSai creates a redisChannel object of RedisChannel, which runs a thread RedisChannel::notificationThreadFunction and acts as a consumer of channel "NOTIFICATIONS". Whatever syncd/gbsyncd produces notification event in channel "NOTIFICATIONS", each consumer will be notified. This causes conflict.

From the above, looks it is fdb event from syncd, only the consumer in context 0 should handle it, however another consumer in context 1, having only gearbox switch info, also handles it and causes the above messages. PR #1129 will fix this issue.

@kcudnik
Copy link
Collaborator

kcudnik commented Sep 21, 2022

RedisRemoteSaiInterface is prepared to use multiple syncds so you dont have to instantiate 2 vestions of if, you can do that byusing sairedis SAI global apis, by specyfying SAI_REDIS_SWITCH_ATTR_CONTEXT attribute on create switch operation https://github.com/sonic-net/sonic-sairedis/blob/master/lib/sairedis.h#L227 and by using SAI_REDIS_KEY_CONTEXT_CONFIG in sai_api_initialize, you will also need context_config.json file which will be consumed by 2 syncds running, where it could specify ASIC_DB and GBASCI_DB

jimmyzhai added a commit that referenced this issue Oct 21, 2022
Fix #1131. The communication channel between orchagent and gbsyncd needs different from
the channel "NOTIFICATIONS" between orchagent and syncd.
yxieca pushed a commit that referenced this issue Oct 25, 2022
Fix #1131. The communication channel between orchagent and gbsyncd needs different from
the channel "NOTIFICATIONS" between orchagent and syncd.
richardyu-ms pushed a commit to richardyu-ms/sonic-sairedis that referenced this issue Nov 15, 2022
Fix sonic-net#1131. The communication channel between orchagent and gbsyncd needs different from
the channel "NOTIFICATIONS" between orchagent and syncd.
richardyu-ms pushed a commit that referenced this issue Nov 16, 2022
Fix #1131. The communication channel between orchagent and gbsyncd needs different from
the channel "NOTIFICATIONS" between orchagent and syncd.
pettershao-ragilenetworks pushed a commit to pettershao-ragilenetworks/sonic-sairedis that referenced this issue Nov 18, 2022
Fix sonic-net#1131. The communication channel between orchagent and gbsyncd needs different from
the channel "NOTIFICATIONS" between orchagent and syncd.
skbarista pushed a commit to skbarista/sonic-sairedis that referenced this issue Dec 2, 2022
Fix sonic-net#1131. The communication channel between orchagent and gbsyncd needs different from
the channel "NOTIFICATIONS" between orchagent and syncd.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants