Open mrafatpanah opened 2 months ago
Hi, @mrafatpanah
Regarding your questions:
By default docker container provides an isolation of network namespace from the host, so it can't be easily accessed. In SONiC networking-wise containers (bgp, lldp, etc.) share their own namespace with the host, so all interfaces are accessible from within. With this feature, you can operate netdevs in the same why as you would be on the host
admin@sonic:~$ docker inspect bgp | jq .[].HostConfig.NetworkMode
"host"
The packet is being processed by IP stack in kernel until the forwarding decision is taken.
Usually the flow is:
For packets not intended for control plane, the forwarding decision is done exclusively by dataplane - packet is processed only by ASIC
Note: netdevs are created in kernel by SAI/SDK and represent the relevant physical interfaces of the switch
Usually the flow is:
@mrafatpanah please ask these kind of questions using sonic-buildimage
Hello. I'm new to using SONiC. I read many documents, such as Architecture, Configuration, Design specs, etc but I don't clearly understand how a packet arrives in application containers such as BGP or LDP. What happens when a packet enters an interface until it leaves the switch? I don't understand how SDK and kernel interact. For example, when a new route arrives in one of the interfaces how will it convert to a kernel netlink message?