diff --git a/internal/pkg/afrouter/api_test.go b/internal/pkg/afrouter/api_test.go
index 0bcb1d4..fc00a1b 100644
--- a/internal/pkg/afrouter/api_test.go
+++ b/internal/pkg/afrouter/api_test.go
@@ -18,6 +18,7 @@
 
 import (
 	"fmt"
+	"github.com/opencord/voltha-lib-go/v2/pkg/probe"
 	"github.com/phayes/freeport"
 	"github.com/stretchr/testify/assert"
 	"testing"
@@ -98,9 +99,9 @@
 }
 
 func makeProxy(numBackends int, numConnections int) (*ArouterProxy, error) {
-
+	p := &probe.Probe{}
 	conf := makeConfig(3, 2)
-	arouter, err := NewArouterProxy(&conf)
+	arouter, err := NewArouterProxy(&conf, p)
 	return arouter, err
 }
 
diff --git a/internal/pkg/afrouter/arproxy.go b/internal/pkg/afrouter/arproxy.go
index 80c8611..6d1c747 100644
--- a/internal/pkg/afrouter/arproxy.go
+++ b/internal/pkg/afrouter/arproxy.go
@@ -22,6 +22,7 @@
 
 import (
 	"github.com/opencord/voltha-lib-go/v2/pkg/log"
+	"github.com/opencord/voltha-lib-go/v2/pkg/probe"
 )
 
 // String names for display in error messages.
@@ -33,7 +34,7 @@
 }
 
 // Create the routing proxy
-func NewArouterProxy(conf *Configuration) (*ArouterProxy, error) {
+func NewArouterProxy(conf *Configuration, p *probe.Probe) (*ArouterProxy, error) {
 	arProxy = &ArouterProxy{servers: make(map[string]*server)}
 	// Create all the servers listed in the configuration
 	for _, s := range conf.Servers {
@@ -53,6 +54,7 @@
 		arProxy.api = api
 	}
 
+	p.UpdateStatus("affinity-router-proxy", probe.ServiceStatusRunning)
 	return arProxy, nil
 }
 
diff --git a/internal/pkg/afrouter/config.go b/internal/pkg/afrouter/config.go
index 8fdfd41..3a61e63 100644
--- a/internal/pkg/afrouter/config.go
+++ b/internal/pkg/afrouter/config.go
@@ -44,11 +44,8 @@
 
 	err := cmdParse.Parse(os.Args[1:])
 	if err != nil {
-		//return err
 		return nil, errors.New("Error parsing the command line")
 	}
-	//if(!cmdParse.Parsed()) {
-	//}
 
 	if val, have := os.LookupEnv("HOSTNAME"); have {
 		config.InstanceID = val
@@ -179,8 +176,10 @@
 
 // Api configuration
 type ApiConfig struct {
-	Addr string `json:"address"`
-	Port uint   `json:"port"`
+	Addr      string `json:"address"`
+	Port      uint   `json:"port"`
+	ProbeHost string `json:"probeHost"`
+	ProbePort int    `json:"probePort"`
 }
 
 func (conf *Configuration) LoadConfig() error {
