diff --git a/src/extended/hw_nat/acl_api.c b/src/extended/hw_nat/acl_api.c
new file mode 100644
index 0000000..3ee3fae
--- /dev/null
+++ b/src/extended/hw_nat/acl_api.c
@@ -0,0 +1,50 @@
+#include <stdlib.h>             
+#include <stdio.h>             
+#include <string.h>           
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include "acl_ioctl.h"
+
+int SetAclEntry(struct acl_args *opt, unsigned int cmd)
+{
+    int fd;
+
+    fd = open("/dev/"ACL_DEVNAME, O_RDONLY);
+    if (fd < 0)
+    {
+	printf("Open %s pseudo device failed\n","/dev/"ACL_DEVNAME);
+	return ACL_FAIL;
+    }
+
+    if(ioctl(fd, cmd, opt)<0) {
+	printf("ACL_API: ioctl error\n");
+	close(fd);
+	return ACL_FAIL;
+    }
+
+    close(fd);
+    return ACL_SUCCESS;
+}
+int AclGetAllEntries(struct acl_list_args *opt)
+{
+    int fd=0;
+
+    fd = open("/dev/"ACL_DEVNAME, O_RDONLY);
+    if (fd < 0)
+    {
+	printf("Open %s pseudo device failed\n","/dev/"ACL_DEVNAME);
+	return ACL_FAIL;
+    }
+
+    if(ioctl(fd, ACL_GET_ALL_ENTRIES, opt)<0) {
+	printf("ACL_API: ioctl error\n");
+	close(fd);
+	return ACL_FAIL;
+    }
+
+    close(fd);
+    
+    return ACL_SUCCESS;
+
+}
