mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-14 08:51:01 +02:00
29 lines
1.5 KiB
Markdown
29 lines
1.5 KiB
Markdown
Here is an answer to the questions that you can compare with your own.
|
|
|
|
* **Which protocol headers are being extracted from each packet?**
|
|
There are three headers defined for packets from the controlplane (ethernet_t, my_tunnel_t and ipv4_t) and two headers for packets from/to controller (packet_out_header_t and packet_in_header_t ).
|
|
|
|
* **How can the parser distinguish a packet with MyTunnel encapsulation from one without?**
|
|
This is done checking the value of the ether_type field. If ETH_TYPE_MYTUNNEL = 0x1212 this is a packet with MyTunnel encapsulation.
|
|
|
|
* **How many match+action tables are defined in the P4 program?**
|
|
There are three tables defined: t_l2_fwd, t_tunnel_ingress and t_tunnel_fwd.
|
|
|
|
* **What is the first table in the pipeline applied to every packet?**
|
|
The first table in the pipeline is t_l2_fwd.
|
|
|
|
* **Which headers can be matched on table t_l2_fwd?**
|
|
hdr.ethernet.dst_addr, hdr.ethernet.src_addr, and hdr.ethernet.ether_type.
|
|
|
|
* **Which type of match is applied to t_l2_fwd? E.g. exact match, ternary, or longest-prefix match?**
|
|
Ternary.
|
|
|
|
* **Which actions can be executed on matched packets?**
|
|
set_out_port, send_to_cpu, _drop, NoAction.
|
|
|
|
* **Which action can be used to send a packet to the controller?**
|
|
action send_to_cpu()
|
|
|
|
* **What happens if a matching entry is not found in table t_l2_fwd? What's the next table applied to the packet?**
|
|
If a matching entry is not found in table t_l2_fwd the next table applied is t_tunnel_ingress to process only non-tunneled IPv4 packets or t_tunnel_fwd for tunneled packets.
|