• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/xnu-2782.1.97/bsd/net/

Lines Matching refs:framer

68 	LIST_REMOVE(rem_framer, framer_chain); // unchain the framer
94 // check framer->state.u.dtls.u.in.listhead for duplicates;
118 // check framer->state.u.dtls.u.in.listhead for duplicates;
436 // check framer->u.listhead for duplicates;
461 utun_crypto_framer_t *framer, *new_framer = NULL, *dup_framer;
473 // Input framer (for tunnel hdr detection and decapsulation). there can be several pattern that identify data (vs. control) packets.
528 // Secondly, we need to be careful about existing framer configs
529 if (!(framer = utun_ctl_get_first_framer(crypto_ctx, args->inner_type))) {
531 if (!(framer = utun_alloc(sizeof(*framer)))) {
535 bzero(framer, sizeof(*framer));
536 // fall through to fill-in the 1st framer
538 // at least one framer configured... check framer->u.listhead for duplicates;
539 if ((dup_framer = utun_ctl_get_dtls_in_framer(framer /* could be a list */,
546 printf("%s: ignoring duplicate framer for type %d\n",__FUNCTION__,
556 framer = new_framer;
557 // fall through to fill-in additional framer
563 framer->inner_type = args->inner_type;
564 framer->inner_protocol_family = utun_crypto_framer_inner_type_to_protocol_family(args->inner_type);
566 if (!(utun_crypto_framer_state_dtls_in(framer).in_pattern = utun_alloc(utun_crypto_framer_args_dtls_in(args).in_pattern_len))) {
567 utun_ctl_clr_dtls_framer(framer);
571 memcpy(utun_crypto_framer_state_dtls_in(framer).in_pattern,
574 utun_crypto_framer_state_dtls_in(framer).in_pattern_len = utun_crypto_framer_args_dtls_in(args).in_pattern_len;
577 if (!(utun_crypto_framer_state_dtls_in(framer).in_pattern_mask = utun_alloc(utun_crypto_framer_args_dtls_in(args).in_pattern_mask_len))) {
578 utun_ctl_clr_dtls_framer(framer);
582 memcpy(utun_crypto_framer_state_dtls_in(framer).in_pattern_mask,
585 utun_crypto_framer_state_dtls_in(framer).in_data_offset = utun_crypto_framer_args_dtls_in(args).in_data_offset;
587 if (!(utun_crypto_framer_state_dtls_in(framer).in_pattern_masked = utun_alloc(utun_crypto_framer_args_dtls_in(args).in_pattern_len))) {
588 utun_ctl_clr_dtls_framer(framer);
592 utun_ctl_calc_dtls_framer_pattern_and_mask(utun_crypto_framer_state_dtls_in(framer).in_pattern_masked,
593 utun_crypto_framer_state_dtls_in(framer).in_pattern,
594 utun_crypto_framer_state_dtls_in(framer).in_pattern_mask,
595 utun_crypto_framer_state_dtls_in(framer).in_pattern_len);
604 printf("%s: invalid output framer, len %d\n",__FUNCTION__,
612 printf("%s: zeroed output framer, len %d\n",__FUNCTION__,
620 printf("%s: output framer has invalid length-field %d,%d,%x\n",__FUNCTION__,
635 printf("%s: output framer has invalid sequence-field %d,%d,%x\n",__FUNCTION__,
653 if (!(framer = utun_ctl_get_first_framer(crypto_ctx, args->inner_type))) {
654 if (!(framer = utun_alloc(sizeof(*framer)))) {
658 bzero(framer, sizeof(*framer));
662 // fall through to fill-in 1st framer
664 // only one outbound framer may be configured.. is it a dup?
665 if (framer->inner_type == args->inner_type &&
666 utun_crypto_framer_state_dtls_out(framer).out_pattern_len == utun_crypto_framer_args_dtls_out(args).out_pattern_len &&
667 utun_crypto_framer_state_dtls_out(framer).out_pattern &&
668 memcmp(utun_crypto_framer_state_dtls_out(framer).out_pattern,
677 if (utun_crypto_framer_state_dtls_out(framer).out_pattern) {
678 utun_free(utun_crypto_framer_state_dtls_out(framer).out_pattern);
680 // fall through to fill-in additional framer
683 framer->inner_type = args->inner_type;
684 framer->inner_protocol_family = utun_crypto_framer_inner_type_to_protocol_family(args->inner_type);
687 if (!(utun_crypto_framer_state_dtls_out(framer).out_pattern = utun_alloc(utun_crypto_framer_args_dtls_out(args).out_pattern_len))) {
688 utun_ctl_clr_dtls_framer(framer);
692 memcpy(utun_crypto_framer_state_dtls_out(framer).out_pattern,
695 utun_crypto_framer_state_dtls_out(framer).out_pattern_len = utun_crypto_framer_args_dtls_out(args).out_pattern_len;
697 utun_crypto_framer_state_dtls_out(framer).len_field_mask = utun_crypto_framer_args_dtls_out(args).len_field_mask;
698 utun_crypto_framer_state_dtls_out(framer).len_field_offset = utun_crypto_framer_args_dtls_out(args).len_field_offset;
699 utun_crypto_framer_state_dtls_out(framer).len_field_extra = utun_crypto_framer_args_dtls_out(args).len_field_extra;
700 utun_crypto_framer_state_dtls_out(framer).sequence_field_initval = utun_crypto_framer_args_dtls_out(args).sequence_field;
701 utun_crypto_framer_state_dtls_out(framer).sequence_field_mask = utun_crypto_framer_args_dtls_out(args).sequence_field_mask;
702 utun_crypto_framer_state_dtls_out(framer).sequence_field_offset = utun_crypto_framer_args_dtls_out(args).sequence_field_offset;
705 framer->type = args->type;
706 framer->dir = args->dir;
707 framer->valid = 1;
717 utun_crypto_framer_t *framer, *rem_framer;
773 if (!(framer = utun_ctl_get_first_framer(crypto_ctx, args->inner_type))) {
779 if ((rem_framer = utun_ctl_get_dtls_in_framer(framer,
787 printf("%s: no matching ingress framer\n", __FUNCTION__);
793 framer = utun_ctl_get_first_framer(crypto_ctx, args->inner_type);
795 if (framer) {
796 if (framer->inner_type != args->inner_type ||
798 utun_crypto_framer_state_dtls_out(framer).out_pattern_len != utun_crypto_framer_args_dtls_out(args).out_pattern_len) ||
800 memcmp(utun_crypto_framer_state_dtls_out(framer).out_pattern,
803 printf("%s: no matching egress framer\n", __FUNCTION__);
807 utun_ctl_clr_dtls_framer(framer);