Lines Matching defs:irl

232 i_ilbd_save_rule(ilbd_rule_t *irl, ilbd_scf_cmd_t scf_cmd)
234 boolean_t enable = irl->irl_flags & ILB_FLAGS_RULE_ENABLED;
238 return (ilbd_create_pg(ILBD_SCF_RULE, (void *)irl));
240 return (ilbd_destroy_pg(ILBD_SCF_RULE, irl->irl_name));
242 return (ilbd_change_prop(ILBD_SCF_RULE, irl->irl_name,
320 ilbd_rule_t *irl = NULL;
324 irl = i_find_rule_byname(rl_name);
325 if (irl == NULL)
330 bcopy(&irl->irl_info, rinfo, sizeof (*rinfo));
362 ilbd_destroy_one_rule(ilbd_rule_t *irl)
372 if ((irl->irl_flags & ILB_FLAGS_RULE_ALLRULES) == 0) {
374 (void) strlcpy(kcmd.name, irl->irl_name, sizeof (kcmd.name));
382 list_remove(&irl->irl_sg->isg_rulelist, irl);
383 list_remove(&ilbd_rule_hlist, irl);
391 if (RULE_HAS_HC(irl) && (rc = ilbd_hc_dissociate_rule(irl)) !=
395 irl->irl_name, irl->irl_hcname, rc);
398 rc = i_ilbd_save_rule(irl, ILBD_SCF_DESTROY);
402 free(irl);
413 ilbd_enable_one_rule(ilbd_rule_t *irl, boolean_t is_rollback)
419 if ((irl->irl_flags & ILB_FLAGS_RULE_ENABLED) != 0)
422 irl->irl_flags |= ILB_FLAGS_RULE_ENABLED;
425 if ((irl->irl_flags & ILB_FLAGS_RULE_ALLRULES) == 0) {
427 (void) strlcpy(kcmd.name, irl->irl_name, sizeof (kcmd.name));
434 if (RULE_HAS_HC(irl) && (rc = ilbd_hc_enable_rule(irl)) !=
445 rc = i_ilbd_save_rule(irl, ILBD_SCF_ENABLE_DISABLE);
448 (void) ilbd_disable_one_rule(irl, B_TRUE);
455 ilbd_disable_one_rule(ilbd_rule_t *irl, boolean_t is_rollback)
461 if ((irl->irl_flags & ILB_FLAGS_RULE_ENABLED) == 0)
464 irl->irl_flags &= ~ILB_FLAGS_RULE_ENABLED;
467 if ((irl->irl_flags & ILB_FLAGS_RULE_ALLRULES) == 0) {
469 (void) strlcpy(kcmd.name, irl->irl_name, sizeof (kcmd.name));
477 if (RULE_HAS_HC(irl) && (rc = ilbd_hc_disable_rule(irl)) !=
488 rc = i_ilbd_save_rule(irl, ILBD_SCF_ENABLE_DISABLE);
491 (void) ilbd_enable_one_rule(irl, B_TRUE);
751 i_ilbd_action_switch(ilbd_rule_t *irl, ilbd_cmd_t cmd,
758 rc = ilbd_destroy_one_rule(irl);
760 ilbd_audit_rule_event(irl->irl_name, NULL,
765 rc = ilbd_enable_one_rule(irl, is_rollback);
767 ilbd_audit_rule_event(irl->irl_name, NULL, cmd,
772 rc = ilbd_disable_one_rule(irl, is_rollback);
774 ilbd_audit_rule_event(irl->irl_name, NULL, cmd,
828 ilbd_rule_t *irl, *irl_next;
858 irl = i_find_rule_byname(rule_name);
859 if (irl == NULL) {
865 rc = i_ilbd_action_switch(irl, cmd, B_FALSE, ucredp);
880 irl = list_head(&ilbd_rule_hlist);
881 while (irl != NULL) {
882 irl_next = list_next(&ilbd_rule_hlist, irl);
883 irl->irl_flags |= ILB_FLAGS_RULE_ALLRULES;
885 rc = i_ilbd_action_switch(irl, cmd, B_FALSE, ucredp);
886 irl->irl_flags &= ~ILB_FLAGS_RULE_ALLRULES;
889 irl = irl_next;
903 irl = list_prev(&ilbd_rule_hlist, irl);
904 while (irl != NULL) {
906 irl->irl_flags |= ILB_FLAGS_RULE_ALLRULES;
915 rc = i_ilbd_action_switch(irl, u_cmd, B_TRUE, NULL);
916 irl->irl_flags &= ~ILB_FLAGS_RULE_ALLRULES;
918 irl = list_prev(&ilbd_rule_hlist, irl);
948 * "template" irl, if non-NULL
951 i_alloc_kernel_rule_cmd(ilbd_rule_t *irl)
961 if (irl != NULL) {
962 kcmd->flags = irl->irl_flags;
963 kcmd->ip_ver = AF_2_IPPROTO(irl->irl_ipversion);
964 kcmd->vip = irl->irl_vip;
965 kcmd->proto = irl->irl_proto;
966 kcmd->min_port = irl->irl_minport;
967 kcmd->max_port = irl->irl_maxport;
968 kcmd->algo = algo_lib2impl(irl->irl_algo);
969 kcmd->topo = topo_lib2impl(irl->irl_topo);
970 kcmd->sticky_mask = irl->irl_stickymask;
971 kcmd->nat_src_start = irl->irl_nat_src_start;
972 kcmd->nat_src_end = irl->irl_nat_src_end;
973 kcmd->conn_drain_timeout = irl->irl_conndrain;
974 kcmd->nat_expiry = irl->irl_nat_timeout;
975 kcmd->sticky_expiry = irl->irl_sticky_timeout;
976 (void) strlcpy(kcmd->name, irl->irl_name,
1108 ilbd_rule_t *irl = NULL;
1140 irl = i_alloc_ilbd_rule(rl);
1141 if (irl == NULL) {
1159 irl->irl_sg = sg;
1162 if (RULE_HAS_HC(irl)) {
1163 if ((rc = ilbd_hc_associate_rule(irl, ev_port)) !=
1176 kcmd = i_alloc_kernel_rule_cmd(irl);
1188 rc = i_update_ksrv_rules(kcmd->name, sg, irl);
1193 (void) i_attach_rule2sg(sg, irl);
1194 list_insert_tail(&ilbd_rule_hlist, irl);
1197 rc = i_ilbd_save_rule(irl, ILBD_SCF_CREATE);
1209 * ilbd_destroy_one_rule() also frees irl, as well as dissociate
1213 (void) ilbd_destroy_one_rule(irl);
1222 if (RULE_HAS_HC(irl))
1223 (void) ilbd_hc_dissociate_rule(irl);
1226 free(irl);