VOL-1363 - Packet out cannot foward packets to any UNI other than the first port on an ONU
Packet-out OnuPacket protobuf has a type error in directed port_no
Added debug log details to flow classifier and actions
Change-Id: Ie2018b7395192af58f4e8f818d7e47384ba7f41e
diff --git a/agent/src/core.cc b/agent/src/core.cc
index 2e01bc7..a641107 100644
--- a/agent/src/core.cc
+++ b/agent/src/core.cc
@@ -233,7 +233,6 @@
bcmbal_init(argc, argv, NULL);
bcmos_fastlock_init(&flow_lock, 0);
-
BCM_LOG(INFO, openolt_log_id, "Enable OLT - %s-%s\n", VENDOR_ID, MODEL_ID);
Status status = SubscribeIndication();
@@ -761,7 +760,7 @@
bcmbal_flow_cfg cfg;
bcmbal_flow_key key = { };
- BCM_LOG(INFO, openolt_log_id, "flow add - intf_id %d, onu_id %d, uni_id %d, port_no %u, flow_id %d, flow_type %s, gemport_id %d, network_intf_id %d, cookie %u\n",
+ BCM_LOG(INFO, openolt_log_id, "flow add - intf_id %d, onu_id %d, uni_id %d, port_no %u, flow_id %d, flow_type %s, gemport_id %d, network_intf_id %d, cookie %llu\n",
access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type.c_str(), gemport_id, network_intf_id, cookie);
key.flow_id = flow_id;
@@ -811,30 +810,37 @@
bcmbal_classifier val = { };
if (classifier.o_tpid()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify o_tpid 0x%04x\n", classifier.o_tpid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, o_tpid, classifier.o_tpid());
}
if (classifier.o_vid()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify o_vid %d\n", classifier.o_vid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, o_vid, classifier.o_vid());
}
if (classifier.i_tpid()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify i_tpid 0x%04x\n", classifier.i_tpid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, i_tpid, classifier.i_tpid());
}
if (classifier.i_vid()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify i_vid %d\n", classifier.i_vid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, i_vid, classifier.i_vid());
}
if (classifier.o_pbits()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify o_pbits 0x%x\n", classifier.o_pbits());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, o_pbits, classifier.o_pbits());
}
if (classifier.i_pbits()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify i_pbits 0x%x\n", classifier.i_pbits());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, i_pbits, classifier.i_pbits());
}
if (classifier.eth_type()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify ether_type 0x%04x\n", classifier.eth_type());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, ether_type, classifier.eth_type());
}
@@ -849,6 +855,7 @@
*/
if (classifier.ip_proto()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify ip_proto %d\n", classifier.ip_proto());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, ip_proto, classifier.ip_proto());
}
@@ -863,14 +870,17 @@
*/
if (classifier.src_port()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify src_port %d\n", classifier.src_port());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, src_port, classifier.src_port());
}
if (classifier.dst_port()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify dst_port %d\n", classifier.dst_port());
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, dst_port, classifier.dst_port());
}
if (!classifier.pkt_tag_type().empty()) {
+ BCM_LOG(DEBUG, openolt_log_id, "classify tag_type %s\n", classifier.pkt_tag_type().c_str());
if (classifier.pkt_tag_type().compare("untagged") == 0) {
BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, pkt_tag_type, BCMBAL_PKT_TAG_TYPE_UNTAGGED);
} else if (classifier.pkt_tag_type().compare("single_tag") == 0) {
@@ -889,38 +899,47 @@
const ::openolt::ActionCmd& cmd = action.cmd();
if (cmd.add_outer_tag()) {
+ BCM_LOG(INFO, openolt_log_id, "action add o_tag\n");
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, cmds_bitmask, BCMBAL_ACTION_CMD_ID_ADD_OUTER_TAG);
}
if (cmd.remove_outer_tag()) {
+ BCM_LOG(INFO, openolt_log_id, "action pop o_tag\n");
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, cmds_bitmask, BCMBAL_ACTION_CMD_ID_REMOVE_OUTER_TAG);
}
if (cmd.trap_to_host()) {
+ BCM_LOG(INFO, openolt_log_id, "action trap-to-host\n");
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, cmds_bitmask, BCMBAL_ACTION_CMD_ID_TRAP_TO_HOST);
}
if (action.o_vid()) {
+ BCM_LOG(INFO, openolt_log_id, "action o_vid=%d\n", action.o_vid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, o_vid, action.o_vid());
}
if (action.o_pbits()) {
+ BCM_LOG(INFO, openolt_log_id, "action o_pbits=0x%x\n", action.o_pbits());
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, o_pbits, action.o_pbits());
}
if (action.o_tpid()) {
+ BCM_LOG(INFO, openolt_log_id, "action o_tpid=0x%04x\n", action.o_tpid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, o_tpid, action.o_tpid());
}
if (action.i_vid()) {
+ BCM_LOG(INFO, openolt_log_id, "action i_vid=%d\n", action.i_vid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, i_vid, action.i_vid());
}
if (action.i_pbits()) {
+ BCM_LOG(DEBUG, openolt_log_id, "action i_pbits=0x%x\n", action.i_pbits());
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, i_pbits, action.i_pbits());
}
if (action.i_tpid()) {
+ BCM_LOG(DEBUG, openolt_log_id, "action i_tpid=0x%04x\n", action.i_tpid());
BCMBAL_ATTRIBUTE_PROP_SET(&val, action, i_tpid, action.i_tpid());
}