+ if (public->userdata_len) {
+ ds_put_cstr(string, " userdata=");
+ format_hex_arg(string, pin.public.userdata, pin.public.userdata_len);
+ ds_put_char(string, '\n');
+ }
+
+ if (!uuid_is_zero(&pin.bridge)) {
+ ds_put_format(string, " continuation.bridge="UUID_FMT"\n",
+ UUID_ARGS(&pin.bridge));
+ }
+
+ if (pin.n_stack) {
+ ds_put_cstr(string, " continuation.stack=");
+ for (size_t i = 0; i < pin.n_stack; i++) {
+ if (i) {
+ ds_put_char(string, ' ');
+ }
+ mf_subvalue_format(&pin.stack[i], string);
+ }
+ }
+
+ if (pin.mirrors) {
+ ds_put_format(string, " continuation.mirrors=0x%"PRIx32"\n",
+ pin.mirrors);
+ }
+
+ if (pin.conntracked) {
+ ds_put_cstr(string, " continuation.conntracked=true\n");
+ }
+
+ if (pin.actions_len) {
+ ds_put_cstr(string, " continuation.actions=");
+ ofpacts_format(pin.actions, pin.actions_len, string);
+ ds_put_char(string, '\n');
+ }
+
+ if (pin.action_set_len) {
+ ds_put_cstr(string, " continuation.action_set=");
+ ofpacts_format(pin.action_set, pin.action_set_len, string);
+ ds_put_char(string, '\n');
+ }
+