When checking if the message is enabled in the asynchronous configuration before sending buffer to remote at send_openflow_buffer method in datapath.c, it doesn't make sense to check the packet_in_mask array for OFPPR_MODIFY messages (line 490), nor the port_status_mask or packet_in_mask arrays for OFPT_FLOW_REMOVED messages (lines 495 -- 504). The same happens at line 520.
The correct would be using the port_status_mask for all OFPT_PORT_STATUS messages, and flow_removed_mask for all OFPT_FLOW_REMOVED reasons. See Section A.3.10 - Set Asynchronous Configuration Message of OpenFlow 1.3.0 spec.
When checking if the message is enabled in the asynchronous configuration before sending buffer to remote at send_openflow_buffer method in datapath.c, it doesn't make sense to check the packet_in_mask array for OFPPR_MODIFY messages (line 490), nor the port_status_mask or packet_in_mask arrays for OFPT_FLOW_REMOVED messages (lines 495 -- 504). The same happens at line 520.
The correct would be using the port_status_mask for all OFPT_PORT_STATUS messages, and flow_removed_mask for all OFPT_FLOW_REMOVED reasons. See Section A.3.10 - Set Asynchronous Configuration Message of OpenFlow 1.3.0 spec.