#define format_parent_cgroup_path(buf, path) \
        format_cgroup_path_pid(buf, path, getppid())
 
-#define format_classid_path(buf)                               \
-       snprintf(buf, sizeof(buf), "%s%s", NETCLS_MOUNT_PATH,   \
-                CGROUP_WORK_DIR)
+#define format_classid_path_pid(buf, pid)                              \
+       snprintf(buf, sizeof(buf), "%s%s%d", NETCLS_MOUNT_PATH, \
+                CGROUP_WORK_DIR, pid)
+
+#define format_classid_path(buf)       \
+       format_classid_path_pid(buf, getpid())
 
 static __thread bool cgroup_workdir_mounted;
 
 
 /**
  * set_classid() - Set a cgroupv1 net_cls classid
- * @id: the numeric classid
  *
- * Writes the passed classid into the cgroup work dir's net_cls.classid
+ * Writes the classid into the cgroup work dir's net_cls.classid
  * file in order to later on trigger socket tagging.
  *
+ * We leverage the current pid as the classid, ensuring unique identification.
+ *
  * On success, it returns 0, otherwise on failure it returns 1. If there
  * is a failure, it prints the error to stderr.
  */
-int set_classid(unsigned int id)
+int set_classid(void)
 {
        char cgroup_workdir[PATH_MAX - 42];
        char cgroup_classid_path[PATH_MAX + 1];
                return 1;
        }
 
-       if (dprintf(fd, "%u\n", id) < 0) {
+       if (dprintf(fd, "%u\n", getpid()) < 0) {
                log_err("Setting cgroup classid");
                rc = 1;
        }