diff --git a/internal/pkg/commands/devices.go b/internal/pkg/commands/devices.go
index dd687a1..0bcda77 100644
--- a/internal/pkg/commands/devices.go
+++ b/internal/pkg/commands/devices.go
@@ -79,6 +79,34 @@
 	STATUS: {{.Status}}
 	FAIL_REASON: {{.FailReason}}
 	RX_POWER : {{.RxPower}}`
+	DEFAULT_ETHERNET_FRAME_EXTENDED_PM_COUNTERS_FORMAT = `Upstream_Drop_Events:	        {{.UDropEvents}}
+Upstream_Octets:	        {{.UOctets}}
+UFrames:	                {{.UFrames}}
+UBroadcastFrames:	        {{.UBroadcastFrames}}
+UMulticastFrames:	        {{.UMulticastFrames}}
+UCrcErroredFrames:	        {{.UCrcErroredFrames}}
+UUndersizeFrames:	        {{.UUndersizeFrames}}
+UOversizeFrames:	        {{.UOversizeFrames}}
+UFrames_64Octets:	        {{.UFrames_64Octets}}
+UFrames_65To_127Octets:	        {{.UFrames_65To_127Octets}}
+UFrames_128To_255Octets:	{{.UFrames_128To_255Octets}}
+UFrames_256To_511Octets:	{{.UFrames_256To_511Octets}}
+UFrames_512To_1023Octets:	{{.UFrames_512To_1023Octets}}
+UFrames_1024To_1518Octets:	{{.UFrames_1024To_1518Octets}}
+DDropEvents:	                {{.DDropEvents}}
+DOctets:	                {{.DOctets}}
+DFrames:	                {{.DFrames}}
+DBroadcastFrames:	        {{.DBroadcastFrames}}
+DMulticastFrames:	        {{.DMulticastFrames}}
+DCrcErroredFrames:	        {{.DCrcErroredFrames}}
+DUndersizeFrames:	        {{.DUndersizeFrames}}
+DOversizeFrames:	        {{.DOversizeFrames}}
+DFrames_64Octets:	        {{.DFrames_64Octets}}
+DFrames_65To_127Octets:	        {{.DFrames_65To_127Octets}}
+DFrames_128To_255Octets:	{{.DFrames_128To_255Octets}}
+DFrames_256To_511Octets:	{{.DFrames_256To_511Octets}}
+DFrames_512To_1023Octets:	{{.DFrames_512To_1023Octets}}
+DFrames_1024To_1518Octets:	{{.DFrames_1024To_1518Octets}}`
 )
 
 type DeviceList struct {
@@ -368,6 +396,13 @@
 	} `positional-args:"yes"`
 }
 
+type GetOnuEthernetFrameExtendedPmCounters struct {
+	ListOutputOptions
+	Args struct {
+		Id DeviceId `positional-arg-name:"DEVICE_ID" required:"yes"`
+	} `positional-args:"yes"`
+}
+
 type RxPower struct {
 	ListOutputOptions
 	Args struct {
@@ -432,11 +467,12 @@
 		List         OnuListImages        `command:"list" `
 	} `command:"onuimage"`
 	GetExtVal struct {
-		Stats       DeviceGetPortStats `command:"portstats"`
-		UniStatus   UniStatus          `command:"unistatus"`
-		OpticalInfo OnuPonOpticalInfo  `command:"onu_pon_optical_info"`
-		OnuStats    GetOnuStats        `command:"onu_stats"`
-		RxPower     RxPower            `command:"rxpower"`
+		Stats                   DeviceGetPortStats                    `command:"portstats"`
+		UniStatus               UniStatus                             `command:"unistatus"`
+		OpticalInfo             OnuPonOpticalInfo                     `command:"onu_pon_optical_info"`
+		OnuStats                GetOnuStats                           `command:"onu_stats"`
+		EthernetFrameExtendedPm GetOnuEthernetFrameExtendedPmCounters `command:"ethernet_frame_extended_pm"`
+		RxPower                 RxPower                               `command:"rxpower"`
 	} `command:"getextval"`
 }
 
@@ -2013,7 +2049,50 @@
 	if outputFormat == "" {
 		outputFormat = GetCommandOptionWithDefault("device-get-onu-status", "format", formatStr)
 	}
+	result := CommandResult{
+		Format:    format.Format(outputFormat),
+		OutputAs:  toOutputType(options.OutputAs),
+		NameLimit: options.NameLimit,
+		Data:      data,
+	}
+	GenerateOutput(&result)
+	return nil
+}
 
+func (options *GetOnuEthernetFrameExtendedPmCounters) Execute(args []string) error {
+	conn, err := NewConnection()
+	if err != nil {
+		return err
+	}
+	defer conn.Close()
+	client := extension.NewExtensionClient(conn)
+
+	singleGetValReq := extension.SingleGetValueRequest{
+		TargetId: string(options.Args.Id),
+		Request: &extension.GetValueRequest{
+			Request: &extension.GetValueRequest_OnuInfo{
+				OnuInfo: &extension.GetOmciEthernetFrameExtendedPmRequest{
+					OnuDeviceId: string(options.Args.Id),
+				},
+			},
+		},
+	}
+	ctx, cancel := context.WithTimeout(context.Background(), GlobalConfig.Current().Grpc.Timeout)
+	defer cancel()
+	rv, err := client.GetExtValue(ctx, &singleGetValReq)
+	if err != nil {
+		Error.Printf("Error getting value on device Id %s,err=%s\n", options.Args.Id, ErrorToString(err))
+		return err
+	}
+
+	if rv.Response.Status != extension.GetValueResponse_OK {
+		return fmt.Errorf("failed to get ethernet frame extended pm counters %v", rv.Response.ErrReason.String())
+	}
+	outputFormat := CharReplacer.Replace(options.Format)
+	data := buildOnuEthernetFrameExtendedPmOutputFormat(rv.GetResponse().GetOnuCounters())
+	if outputFormat == "" {
+		outputFormat = GetCommandOptionWithDefault("device-get-onu-status", "format", DEFAULT_ETHERNET_FRAME_EXTENDED_PM_COUNTERS_FORMAT)
+	}
 	result := CommandResult{
 		Format:    format.Format(outputFormat),
 		OutputAs:  toOutputType(options.OutputAs),
diff --git a/internal/pkg/commands/stats.go b/internal/pkg/commands/stats.go
index e77aa75..8b84a0a 100644
--- a/internal/pkg/commands/stats.go
+++ b/internal/pkg/commands/stats.go
@@ -16,6 +16,7 @@
 package commands
 
 import (
+	"fmt"
 	"github.com/opencord/voltctl/pkg/model"
 	"github.com/opencord/voltha-protos/v4/go/extension"
 	"strings"
@@ -37,16 +38,15 @@
 }
 func (t *tagBuilder) addFieldInFormat(name string) {
 	if !t.firstField {
-		t.tag.WriteString("\t")
+		t.tag.WriteString("\n")
 	}
 	t.firstField = false
+	str := fmt.Sprintf("%s:    ", name)
+	t.tag.WriteString(str)
 	t.tag.WriteString("{{.")
 	t.tag.WriteString(name)
 	t.tag.WriteString("}}")
 }
-func (t *tagBuilder) addTableInFormat() {
-	t.tag.WriteString("table")
-}
 
 /*
  * Construct a template format string based on the fields required by the
@@ -55,7 +55,6 @@
 func buildOnuStatsOutputFormat(counters *extension.GetOnuCountersResponse) (model.OnuStats, string) {
 	onuStats := model.OnuStats{}
 	tagBuilder := NewTagBuilder()
-	tagBuilder.addTableInFormat()
 	if counters.IsIntfId != nil {
 		intfId := counters.GetIntfId()
 		onuStats.IntfId = &intfId
@@ -193,3 +192,96 @@
 	}
 	return onuStats, tagBuilder.buildOutputString()
 }
+
+/*
+ * Construct a template format string based on the fields required by the
+ * results.
+ */
+func buildOnuEthernetFrameExtendedPmOutputFormat(counters *extension.GetOmciEthernetFrameExtendedPmResponse) model.OnuEthernetFrameExtendedPm {
+	onuStats := model.OnuEthernetFrameExtendedPm{}
+
+	dropEvents := counters.Upstream.GetDropEvents()
+	onuStats.UDropEvents = &dropEvents
+
+	octets := counters.Upstream.GetOctets()
+	onuStats.UOctets = &octets
+
+	frames := counters.Upstream.GetFrames()
+	onuStats.UFrames = &frames
+
+	broadcastFrames := counters.Upstream.GetBroadcastFrames()
+	onuStats.UBroadcastFrames = &broadcastFrames
+
+	multicastFrames := counters.Upstream.GetMulticastFrames()
+	onuStats.UMulticastFrames = &multicastFrames
+
+	crcErroredFrames := counters.Upstream.GetCrcErroredFrames()
+	onuStats.UCrcErroredFrames = &crcErroredFrames
+
+	undersizeFrames := counters.Upstream.GetUndersizeFrames()
+	onuStats.UUndersizeFrames = &undersizeFrames
+
+	oversizeFrames := counters.Upstream.GetOversizeFrames()
+	onuStats.UOversizeFrames = &oversizeFrames
+
+	frames_64Octets := counters.Upstream.GetFrames_64Octets()
+	onuStats.UFrames_64Octets = &frames_64Octets
+
+	frames_65To_127Octets := counters.Upstream.GetFrames_65To_127Octets()
+	onuStats.UFrames_65To_127Octets = &frames_65To_127Octets
+
+	frames_128To_255Octets := counters.Upstream.GetFrames_128To_255Octets()
+	onuStats.UFrames_128To_255Octets = &frames_128To_255Octets
+
+	frames_256To_511Octets := counters.Upstream.GetFrames_256To_511Octets()
+	onuStats.UFrames_256To_511Octets = &frames_256To_511Octets
+
+	frames_512To_1023Octets := counters.Upstream.GetFrames_512To_1023Octets()
+	onuStats.UFrames_512To_1023Octets = &frames_512To_1023Octets
+
+	frames_1024To_1518Octets := counters.Upstream.GetFrames_1024To_1518Octets()
+	onuStats.UFrames_1024To_1518Octets = &frames_1024To_1518Octets
+
+	dDropEvents := counters.Downstream.GetDropEvents()
+	onuStats.DDropEvents = &dDropEvents
+
+	dOctets := counters.Downstream.GetOctets()
+	onuStats.DOctets = &dOctets
+
+	dFrames := counters.Downstream.GetFrames()
+	onuStats.DFrames = &dFrames
+
+	dBroadcastFrames := counters.Downstream.GetBroadcastFrames()
+	onuStats.DBroadcastFrames = &dBroadcastFrames
+
+	dMulticastFrames := counters.Downstream.GetMulticastFrames()
+	onuStats.DMulticastFrames = &dMulticastFrames
+
+	dCrcErroredFrames := counters.Downstream.GetCrcErroredFrames()
+	onuStats.DCrcErroredFrames = &dCrcErroredFrames
+
+	dUndersizeFrames := counters.Downstream.GetUndersizeFrames()
+	onuStats.DUndersizeFrames = &dUndersizeFrames
+
+	dOversizeFrames := counters.Downstream.GetOversizeFrames()
+	onuStats.DOversizeFrames = &dOversizeFrames
+
+	dFrames_64Octets := counters.Downstream.GetFrames_64Octets()
+	onuStats.DFrames_64Octets = &dFrames_64Octets
+
+	dFrames_65To_127Octets := counters.Downstream.GetFrames_65To_127Octets()
+	onuStats.DFrames_65To_127Octets = &dFrames_65To_127Octets
+
+	dFrames_128To_255Octets := counters.Downstream.GetFrames_128To_255Octets()
+	onuStats.DFrames_128To_255Octets = &dFrames_128To_255Octets
+
+	dFrames_256To_511Octets := counters.Downstream.GetFrames_256To_511Octets()
+	onuStats.DFrames_256To_511Octets = &dFrames_256To_511Octets
+
+	dFrames_512To_1023Octets := counters.Downstream.GetFrames_512To_1023Octets()
+	onuStats.DFrames_512To_1023Octets = &dFrames_512To_1023Octets
+
+	dFrames_1024To_1518Octets := counters.Downstream.GetFrames_1024To_1518Octets()
+	onuStats.DFrames_1024To_1518Octets = &dFrames_1024To_1518Octets
+	return onuStats
+}
