[VOL-2055] Use Tech Profile ID to differentiate downstream traffic scheduler

- CreateQueue / RemoveQueue / CreateSched / RemoveSched / FlowAdd updated to include
  tech_profile_id to select downstream scheduler.
- A DS scheduler is now identified by the tuple (pon, onu, uni, dir, tech_profile_id)
- voltha_protos v3.3.5 is now referred.
- Unit tests updated.
- VERSION updated.

Change-Id: I399bbb03aa33b61a02da10af0a40d354d44bd5cf
diff --git a/agent/test/Makefile b/agent/test/Makefile
index a27f399..a32c160 100644
--- a/agent/test/Makefile
+++ b/agent/test/Makefile
@@ -21,7 +21,7 @@
 TOP_DIR=`pwd`
 OPENOLTDEVICE ?= asfvolt16
 
-OPENOLT_PROTO_VER ?= v3.3.4
+OPENOLT_PROTO_VER ?= v3.3.5
 
 GTEST_VER ?= release-1.8.0
 gtest-target = /usr/local/lib/libgtest.a
diff --git a/agent/test/src/test_core.cc b/agent/test/src/test_core.cc
index 7f9926f..d5b4dc8 100644
--- a/agent/test/src/test_core.cc
+++ b/agent/test/src/test_core.cc
@@ -1237,6 +1237,7 @@
         int32_t priority_value = 0;
         uint64_t cookie = 0;
         int32_t group_id = -1;
+        uint32_t tech_profile_id = 64;
 
         NiceMock<BalMocker> balMock;
         openolt::Flow* flow;
@@ -1363,7 +1364,7 @@
     ON_CALL(balMock, bcmolt_cfg_set(_, _)).WillByDefault(Return(olt_cfg_set_res));
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type,
-        alloc_id, network_intf_id, gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        alloc_id, network_intf_id, gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() == Status::OK.error_message() );
 }
 
@@ -1375,7 +1376,7 @@
                      .WillRepeatedly(DoAll(SetArg1ToBcmOltFlowCfg(flow_cfg), Return(flow_cfg_get_stub_res)));
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() != Status::OK.error_message() );
 }
 #endif
@@ -1392,7 +1393,7 @@
     ON_CALL(balMock, bcmolt_cfg_set(_, _)).WillByDefault(Return(olt_cfg_set_res));
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() != Status::OK.error_message() );
 }
 
@@ -1401,7 +1402,7 @@
     flow_type = "bidirectional";
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() != Status::OK.error_message() );
 }
 
@@ -1410,7 +1411,7 @@
     network_intf_id = -1;
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() != Status::OK.error_message() );
 }
 
@@ -1431,7 +1432,7 @@
     ON_CALL(balMock, bcmolt_cfg_set(_, _)).WillByDefault(Return(olt_cfg_set_res));
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id,
-        network_intf_id, gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        network_intf_id, gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() == Status::OK.error_message() );
 }
 
@@ -1455,7 +1456,7 @@
     ON_CALL(balMock, bcmolt_cfg_set(_, _)).WillByDefault(Return(olt_cfg_set_res));
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() == Status::OK.error_message() );
 }
 
@@ -1480,7 +1481,7 @@
     ON_CALL(balMock, bcmolt_cfg_set(_, _)).WillByDefault(Return(olt_cfg_set_res));
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() == Status::OK.error_message() );
 }
 
@@ -1501,7 +1502,7 @@
     CreateTrafficQueues_(traffic_queues);
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() == Status::OK.error_message() );
 }
 
@@ -1532,7 +1533,7 @@
     CreateTrafficQueues_(traffic_queues);
 
     Status status = FlowAdd_(access_intf_id, onu_id, uni_id, port_no, flow_id, flow_type, alloc_id, network_intf_id,
-        gemport_id, *classifier, *action, priority_value, cookie, group_id);
+        gemport_id, *classifier, *action, priority_value, cookie, group_id, tech_profile_id);
     ASSERT_TRUE( status.error_message() == Status::OK.error_message() );
 }