diff --git a/internal/pkg/commands/devices.go b/internal/pkg/commands/devices.go
index 61bb758..eb65adb 100644
--- a/internal/pkg/commands/devices.go
+++ b/internal/pkg/commands/devices.go
@@ -171,6 +171,11 @@
  RxBytes:        {{.RxBytes}}
  TxPackets:      {{.TxPackets}}
  TxBytes:        {{.TxBytes}}{{end}}`
+	DEFAULT_ONU_FEC_HISTORY_FORMAT = `CorrectedBytes:         {{.CorrectedBytes}}
+CorrectedCodeWords:     {{.CorrectedCodeWords}}
+FecSeconds:             {{.FecSeconds}}
+TotalCodeWords:         {{.TotalCodeWords}}
+UncorrectableCodeWords: {{.UncorrectableCodeWords}}`
 
 	DEFAULT_ONU_DISTANCE_FORMAT          = `Distance`
 	DEFAULT_DEVICE_ALARMS_FORMAT         = "table{{ .ClassId }}\t{{.InstanceId}}\t{{.Name}}\t{{.Description}}"
@@ -578,6 +583,12 @@
 	} `positional-args:"yes"`
 }
 
+type GetOnuFecHistory struct {
+	ListOutputOptions
+	Args struct {
+		Id DeviceId `positional-arg-name:"DEVICE_ID" required:"yes"`
+	} `positional-args:"yes"`
+}
 type GetOnuDistance struct {
 	ListOutputOptions
 	Args struct {
@@ -688,6 +699,7 @@
 		NniStats                GetNniPortStats                       `command:"nni_statistics"`
 		OnuGEMStats             GetOnuGEMStats                        `command:"onu_gem_stats"`
 		OnuAllocGemStats        GetOnuAllocGemStatsFromOlt            `command:"onu_alloc_gem_from_olt"`
+		OnuFecHistory           GetOnuFecHistory                      `command:"onu_fec_history"`
 	} `command:"getextval"`
 	SetExtVal struct {
 		OffloadAppStatsSet SetOffloadApp `command:"set_offload_app"`
@@ -3109,6 +3121,47 @@
 
 }
 
+func (options *GetOnuFecHistory) 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_FecHistory{
+				FecHistory: &extension.GetOnuFecHistory{},
+			},
+		},
+	}
+	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 onu FEC history stats from ONT %v", rv.Response.ErrReason.String())
+	}
+
+	outputFormat := CharReplacer.Replace(options.Format)
+	if outputFormat == "" {
+		outputFormat = GetCommandOptionWithDefault("device-get-onu-fec-History", "format", DEFAULT_ONU_FEC_HISTORY_FORMAT)
+	}
+	result := CommandResult{
+		Format:    format.Format(outputFormat),
+		OutputAs:  toOutputType(options.OutputAs),
+		NameLimit: options.NameLimit,
+		Data:      rv.GetResponse().GetFecHistory(),
+	}
+	GenerateOutput(&result)
+	return nil
+
+}
+
 func (options *GetOnuAllocGemStatsFromOlt) Execute(args []string) error {
 	conn, err := NewConnection()
 	if err != nil {
