diff --git a/protos/voltha_protos/extensions.proto b/protos/voltha_protos/extensions.proto
index 1f232ec..d372f93 100755
--- a/protos/voltha_protos/extensions.proto
+++ b/protos/voltha_protos/extensions.proto
@@ -378,12 +378,78 @@
     repeated AlarmData active_alarms = 1;
 }
 
+message GetOffloadedAppsStatisticsRequest {
+    enum OffloadedApp {
+        UNDEFINED = 0;
+        PPPoeIA = 1;
+        DHCPv4RA = 2;
+        DHCPv6RA = 3;
+    }
+    // The offloaded application whose statistics are requested
+    OffloadedApp statsFor = 1;
+}
+
+message GetOffloadedAppsStatisticsResponse {
+    message DHCPv4RAStats {
+        // From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-l2-dhcpv4-relay.yang
+        uint32 in_bad_packets_from_client = 1;
+        uint32 in_bad_packets_from_server = 2;
+        uint32 in_packets_from_client = 3;
+        uint32 in_packets_from_server = 4;
+        uint32 out_packets_to_server = 5;
+        uint32 out_packets_to_client = 6;
+        uint32 option_82_inserted_packets_to_server = 7;
+        uint32 option_82_removed_packets_to_client = 8;
+        uint32 option_82_not_inserted_to_server = 9;
+
+        // Name value pairs that gives the flexibility to report different statistics that implementations may choose
+        map<string, string> additional_stats = 10; 
+    }
+
+    message DHCPv6RAStats {
+        // From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-ldra.yang
+        uint32 in_bad_packets_from_client = 1;
+        uint32 in_bad_packets_from_server = 2;
+        uint32 option_17_inserted_packets_to_server = 3;
+        uint32 option_17_removed_packets_to_client = 4;
+        uint32 option_18_inserted_packets_to_server = 5;
+        uint32 option_18_removed_packets_to_client = 6;
+        uint32 option_37_inserted_packets_to_server = 7;
+        uint32 option_37_removed_packets_to_client = 8;
+        uint32 outgoing_mtu_exceeded_packets_from_client = 9;
+
+        // Name value pairs that gives the flexibility to report different statistics that implementations may choose
+        map<string, string> additional_stats = 10; 
+    }
+
+    message PPPoeIAStats {
+        // From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent.yang
+        uint32 in_error_packets_from_client = 1;
+        uint32 in_error_packets_from_server = 2;
+        uint32 in_packets_from_client = 3;
+        uint32 in_packets_from_server = 4;
+        uint32 out_packets_to_server = 5;
+        uint32 out_packets_to_client = 6;
+        uint32 vendor_specific_tag_inserted_packets_to_server = 7;
+        uint32 vendor_specific_tag_removed_packets_to_client = 8;
+        uint32 outgoing_mtu_exceeded_packets_from_client = 9;
+
+        // Name value pairs that gives the flexibility to report different statistics that implementations may choose
+        map<string, string> additional_stats = 10; 
+    }
+    
+    oneof stats {
+        DHCPv4RAStats dhcpv4RaStats = 1;
+        DHCPv6RAStats dhcpv6RaStats = 2;
+        PPPoeIAStats pppoeIaStats = 3;
+    }
+}
 
 message GetValueRequest {
     oneof request {
         GetDistanceRequest distance = 1;
         GetOnuUniInfoRequest uniInfo = 2;
-        // Corresponds to PmMetricId.PON_PORT_COUNTERS, PmMetricId.NNI_PORT_COUNTERS 
+        // Corresponds to PmMetricId.PON_PORT_COUNTERS, PmMetricId.NNI_PORT_COUNTERS
         GetOltPortCounters oltPortInfo = 3;
         // Corresponds to PmMetricId.PON_OPTICAL
         GetOnuPonOpticalInfo onuOpticalInfo = 4;
@@ -397,6 +463,7 @@
         GetOnuOmciTxRxStatsRequest onuOmciStats = 10;
         GetOltRxPowerRequest oltRxPower = 11;
         GetOnuOmciActiveAlarmsRequest onuActiveAlarms  = 12;
+        GetOffloadedAppsStatisticsRequest offloadedAppsStats = 13;
     }
 }
 
@@ -433,12 +500,41 @@
         GetOnuOmciTxRxStatsResponse onuOmciStats = 12;
         GetOltRxPowerResponse oltRxPower = 13;
         GetOnuOmciActiveAlarmsResponse onuActiveAlarms = 14;
+        GetOffloadedAppsStatisticsResponse offloadedAppsStats = 15;
     }
 }
 
+// AppOffloadConfig is the configuration for offloading applications to the OLT and has OLT wide configuration.
+message AppOffloadConfig {
+    bool enableDHCPv4RA = 1;
+    bool enableDHCPv6RA = 2;
+    bool enablePPPoEIA = 3;
+    // Follows the same as the BBF Access Node Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-subscriber-profiles.yang
+    string accessNodeID = 4;
+}
+
+// AppOffloadOnuConfig has Onu specfic configuration which the OLT runs applications which have been offloaded.
+message AppOffloadOnuConfig {
+    string onuDeviceId = 1;
+
+    message PerUniConfig {
+        // As per the BBF Agent Remote Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
+        string agentRemoteID = 2;
+        // As per the BBF Agent Circuit Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
+        string agentCircuitID = 3;
+        // The id of the UNI on the Onu for which this configuration is relevant. The UNI ids are numbered from 0 to n depending on the number of UNI ports on the ONU.
+        uint32 onuUniId = 4;
+    }
+
+    repeated PerUniConfig perUniInfo = 5;
+
+}
+
 message SetValueRequest {
     oneof request {
         config.AlarmConfig alarm_config = 1;
+        AppOffloadConfig app_offload_config = 2;
+        AppOffloadOnuConfig app_offload_onu_config = 3;
     }
 }
 
@@ -452,6 +548,9 @@
     enum ErrorReason {
         REASON_UNDEFINED = 0;
         UNSUPPORTED = 1;
+        INVALID_DEVICE_ID = 2;
+        INVALID_ONU_DEVICE_ID = 3;
+        INVALID_UNI_ID = 4;
     }
     Status status = 1;
     ErrorReason errReason = 2;
