Lines Matching refs:rd

123 	ilb_rule_data_t	*rd;
129 ilb_rule_data_t *rd;
305 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
309 (void) strlcpy(buf, rd->r_name, bufsize);
312 (void) strlcpy(buf, rd->r_sgname, bufsize);
315 if (rd->r_hcname != NULL && *(rd->r_hcname) != '\0')
316 (void) strlcpy(buf, rd->r_hcname, bufsize);
327 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
329 if (rd->r_proto == IPPROTO_TCP)
331 else if (rd->r_proto == IPPROTO_UDP)
342 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
347 ip = &rd->r_vip;
350 ip = &rd->r_nat_src_start;
351 ip2 = &rd->r_nat_src_end;
354 ip = &rd->r_stickymask;
377 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
381 if (!(rd->r_flags & ILB_FLAGS_RULE_STICKY))
383 ip = &rd->r_stickymask;
390 hcport_print(ilb_rule_data_t *rd, char *buf, uint_t bufsize)
392 if (rd->r_hcport != 0)
393 (void) snprintf(buf, bufsize, "%d", ntohs(rd->r_hcport));
394 else if (rd->r_hcpflag == ILB_HCI_PROBE_ANY)
403 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
406 return (of_port2str(rd->r_minport, rd->r_maxport, buf,
410 if (of_arg->ofmt_id == OF_HCPORT && rd->r_hcname[0] != '\0')
411 hcport_print(rd, buf, bufsize);
421 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
423 if ((rd->r_flags & ILB_FLAGS_RULE_ENABLED) == ILB_FLAGS_RULE_ENABLED)
435 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
437 if (algo2bare_str(rd->r_algo, buf, bufsize) == 0)
446 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
448 if (topo2bare_str(rd->r_topo, buf, bufsize) == 0)
457 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
461 (void) snprintf(buf, bufsize, "%u", rd->r_conndrain);
464 (void) snprintf(buf, bufsize, "%u", rd->r_nat_timeout);
467 (void) snprintf(buf, bufsize, "%u", rd->r_sticky_timeout);
498 ilb_rule_data_t *rd = (ilb_rule_data_t *)ra->rd;
504 (void) ilb_walk_servers(ra->h, srv2srvID, rd->r_sgname,
566 ilbadm_show_onerule(ilb_handle_t h, ilb_rule_data_t *rd, void *arg)
575 boolean_t r_enabled = rd->r_flags & ILB_FLAGS_RULE_ENABLED;
599 ra.rd = rd;
603 if (rd->r_vip.ia_af == AF_INET)
752 (void) strlcpy(buf, larg->rd->r_name, bufsize);
794 ilbadm_show_rl_servers(ilb_handle_t h, ilb_rule_data_t *rd, void *arg)
816 if (rd->r_vip.ia_af == AF_INET)
833 larg->rd = rd;
834 larg->sgname = rd->r_sgname;
836 return (ilb_walk_servers(h, i_show_rl_srv, rd->r_sgname, (void *)larg));
922 i_parse_rl_arg(char *arg, ilb_rule_data_t *rd, ilbadm_key_name_t *keylist)
926 rc = i_parse_optstring(arg, (void *) rd, keylist,
934 ilb_rule_data_t *rd;
936 *rdp = rd = (ilb_rule_data_t *)calloc(sizeof (*rd), 1);
937 if (rd == NULL)
939 rd->r_proto = IPPROTO_TCP;
943 i_ilbadm_free_rule(ilb_rule_data_t *rd)
945 free(rd);
1073 ilb_rule_data_t *rd;
1076 i_ilbadm_alloc_rule(&rd);
1081 rd->r_flags |= ILB_FLAGS_RULE_ENABLED;
1089 rd->r_hcpflag = ILB_HCI_PROBE_ANY;
1090 rc = i_parse_rl_arg(optarg, rd, &rl_healthchk_keys[0]);
1093 rc = i_parse_rl_arg(optarg, rd, &rl_outgoing_keys[0]);
1096 rc = i_parse_rl_arg(optarg, rd, &rl_method_keys[0]);
1099 rc = i_parse_rl_arg(optarg, rd, &rl_timer_keys[0]);
1102 rc = i_parse_rl_arg(optarg, rd, &rl_incoming_keys[0]);
1136 if ((rd->r_flags & ILB_FLAGS_RULE_STICKY) == 0) {
1139 switch (rd->r_vip.ia_af) {
1147 rc = ilbadm_set_netmask(maskstr, &rd->r_stickymask,
1148 rd->r_vip.ia_af);
1158 if ((rd->r_flags & ILB_FLAGS_RULE_STICKY) != 0) {
1174 (void) strlcpy(rd->r_name, argv[optind], sizeof (rd->r_name));
1176 rc = i_check_rule_spec(rd);
1184 rclib = ilb_create_rule(h, rd);
1187 i_ilbadm_free_rule(rd);
1209 ilbadm_export_rl(ilb_handle_t h, ilb_rule_data_t *rd, void *arg)
1217 if (rd->r_flags & ILB_FLAGS_RULE_ENABLED)
1219 if (rd->r_flags & ILB_FLAGS_RULE_STICKY)
1222 ip2str(&rd->r_vip, linebuf, sz, V6_ADDRONLY);
1225 (void) ports2str(ntohs(rd->r_minport), ntohs(rd->r_maxport),
1229 proto2str(rd->r_proto, linebuf, sz);
1232 algo2str(rd->r_algo, linebuf, sz);
1235 topo2str(rd->r_topo, linebuf, sz);
1238 if (rd->r_nat_src_start.ia_af != AF_UNSPEC) {
1239 ip2str(&rd->r_nat_src_start, linebuf, sz, V6_ADDRONLY);
1243 ip2str(&rd->r_nat_src_end, linebuf, sz, V6_ADDRONLY);
1248 if (rd->r_flags & ILB_FLAGS_RULE_STICKY) {
1250 ilbadm_mask_to_prefixlen(&rd->r_stickymask));
1255 if (*rd->r_hcname != '\0') {
1256 (void) fprintf(fp, "-h hc-name=%s", rd->r_hcname);
1257 hcport_print(rd, linebuf, sizeof (linebuf));
1264 conndrain = rd->r_conndrain;
1265 nat_timeout = rd->r_nat_timeout;
1266 sticky_timeout = rd->r_sticky_timeout;
1290 if (fprintf(fp, "-o servergroup=%s %s\n", rd->r_sgname, rd->r_name)