MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ng_car_constructor

Function ng_car_constructor

freebsd/netgraph/ng_car.c:185–231  ·  view source on GitHub ↗

* Node constructor */

Source from the content-addressed store, hash-verified

183 * Node constructor
184 */
185static int
186ng_car_constructor(node_p node)
187{
188 priv_p priv;
189
190 /* Initialize private descriptor. */
191 priv = malloc(sizeof(*priv), M_NETGRAPH, M_WAITOK | M_ZERO);
192
193 NG_NODE_SET_PRIVATE(node, priv);
194 priv->node = node;
195
196 /*
197 * Arbitrary default values
198 */
199
200 priv->upper.hook = NULL;
201 priv->upper.dest = NULL;
202 priv->upper.tc = priv->upper.conf.cbs = NG_CAR_CBS_MIN;
203 priv->upper.te = priv->upper.conf.ebs = NG_CAR_EBS_MIN;
204 priv->upper.conf.cir = NG_CAR_CIR_DFLT;
205 priv->upper.conf.green_action = NG_CAR_ACTION_FORWARD;
206 priv->upper.conf.yellow_action = NG_CAR_ACTION_FORWARD;
207 priv->upper.conf.red_action = NG_CAR_ACTION_DROP;
208 priv->upper.conf.mode = 0;
209 getbinuptime(&priv->upper.lastRefill);
210 priv->upper.q_first = 0;
211 priv->upper.q_last = 0;
212 ng_callout_init(&priv->upper.q_callout);
213 mtx_init(&priv->upper.q_mtx, "ng_car_u", NULL, MTX_DEF);
214
215 priv->lower.hook = NULL;
216 priv->lower.dest = NULL;
217 priv->lower.tc = priv->lower.conf.cbs = NG_CAR_CBS_MIN;
218 priv->lower.te = priv->lower.conf.ebs = NG_CAR_EBS_MIN;
219 priv->lower.conf.cir = NG_CAR_CIR_DFLT;
220 priv->lower.conf.green_action = NG_CAR_ACTION_FORWARD;
221 priv->lower.conf.yellow_action = NG_CAR_ACTION_FORWARD;
222 priv->lower.conf.red_action = NG_CAR_ACTION_DROP;
223 priv->lower.conf.mode = 0;
224 priv->lower.lastRefill = priv->upper.lastRefill;
225 priv->lower.q_first = 0;
226 priv->lower.q_last = 0;
227 ng_callout_init(&priv->lower.q_callout);
228 mtx_init(&priv->lower.q_mtx, "ng_car_l", NULL, MTX_DEF);
229
230 return (0);
231}
232
233/*
234 * Add a hook.

Callers

nothing calls this directly

Calls 3

mallocFunction · 0.85
getbinuptimeFunction · 0.85
mtx_initFunction · 0.85

Tested by

no test coverage detected